Heim >Backend-Entwicklung >C++ >Wie kann ich einen anonymen Typ in C# umwandeln, um auf seine Eigenschaften zuzugreifen?
Anonymen Typ umwandeln, um auf Eigenschaften zuzugreifen
Das Umwandeln eines anonymen Typs zurück in seinen ursprünglichen Typ kann beim Zugriff auf seine Eigenschaften problematisch sein. Um dieses Problem zu lösen, kann man einen Trick anwenden, um auf den richtigen Typ zu schließen.
Den Compiler austricksen
Die Methode Cast
private static T Cast<T>(T typeHolder, Object x) { // typeHolder above is just for compiler magic // to infer the type to cast x to return (T)x; }
Verwendung:
var a = new { Id = 1, Name = "Bob" }; TestMethod(a); ... private static void TestMethod(Object x) { // This is a dummy value, just to get 'a' to be of the right type var a = new { Id = 0, Name = "" }; a = Cast(a, x); Console.Out.WriteLine(a.Id + ": " + a.Name); }
Alternative Umwandlungsmethode
Eine alternative Methode besteht darin, eine Erweiterungsmethode CastTo
private static T CastTo<T>(this Object value, T targetType) { // targetType above is just for compiler magic // to infer the type to cast value to return (T)value; }
Verwendung:
var value = x.CastTo(a);
Empfehlung
Während diese Techniken die Umwandlung anonymer Typen ermöglichen, wird empfohlen, echte zu verwenden Typen für Klarheit und Benutzerfreundlichkeit.
Das obige ist der detaillierte Inhalt vonWie kann ich einen anonymen Typ in C# umwandeln, um auf seine Eigenschaften zuzugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!