Converti un tipo esistente in un tipo anonimo e aggiungi una nuova proprietà
-
20-08-2019 - |
Domanda
È possibile prendere un tipo esistente e crearne uno anonimo con proprietà aggiuntive? Ad esempio (in VB)
Public Class Person
Public Name As String
Public Age As Integer
End Class
Dim p As New Person With {.Name = "James", .Age = 100}
Dim n = New With {.ShoeSize = 10}
Quello che voglio è il secondo oggetto (n) per clonare tutte le proprietà di p e quindi aggiungere una nuova proprietà (ShoeSize).
È possibile?
Molte grazie
James
Soluzione
Non c'è sintassi per farlo in C #. Dovrai costruire tu stesso il tipo anonimo, con tutte le proprietà.
Altri suggerimenti
Se hai bisogno di farlo regolarmente, una modifica delle mie estensioni elencate qui potrebbe salvare qualche digitazione.
Cioè, se restituissero string.Join(", " , from p in ps select "." + p.Name + " = " + VarName + "." + p.Name)
, potresti almeno salvare un po 'di battitura.
Un esempio con le variabili nell'OP: p.AllFieldsVb("p")
restituisce ".Name = p.Name, .Age = p.Age"
.