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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top