2009-01-30 10 views
3

Est-il possible de prendre un type existant et de créer un type anonyme avec des propriétés supplémentaires? Par exemple (en VB)Convertir un type existant en un type anonyme et ajouter une nouvelle propriété

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 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

Répondre

2

Il n'y a pas de syntaxe pour faire en C#. Vous devrez construire le type anonyme vous-même, avec toutes les propriétés.

0

Si vous avez besoin de le faire régulièrement, une modification de mes extensions listées here pourrait sauver de la frappe. C'est-à-dire, s'ils retournent string.Join(", " , from p in ps select "." + p.Name + " = " + VarName + "." + p.Name), vous pouvez au moins enregistrer un peu de frappe. Un exemple avec les variables dans l'OP: p.AllFieldsVb("p") renvoie ".Name = p.Name, .Age = p.Age".

Questions connexes