Convertir un type existant en un type anonyme et ajouter une nouvelle propriété
-
20-08-2019 - |
Question
Est-il possible de prendre un type existant et d'en créer un type anonyme avec des propriétés supplémentaires? Par exemple (en 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}
Ce que je veux, c'est le deuxième objet (n) pour cloner toutes les propriétés de p, puis ajouter une nouvelle propriété (ShoeSize).
Est-ce possible?
Merci beaucoup
James
La solution
Il n'y a pas de syntaxe pour le faire en C #. Vous devrez construire le type anonyme vous-même, avec toutes les propriétés.
Autres conseils
Si vous devez le faire régulièrement, une modification de mes extensions répertoriées dans ici pourrait vous éviter quelques saisies.
C’est-à-dire que s’ils retournaient string.Join(", " , from p in ps select "." + p.Name + " = " + VarName + "." + p.Name)
, vous pourriez au moins économiser du texte.
Un exemple avec les variables dans l'OP: p.AllFieldsVb("p")
renvoie ".Name = p.Name, .Age = p.Age"
.