Heim >Backend-Entwicklung >C++ >Wie kann ich in .NET in anonyme Typen umwandeln, und wann sollte ich dies vermeiden?

Wie kann ich in .NET in anonyme Typen umwandeln, und wann sollte ich dies vermeiden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-06 04:43:46675Durchsuche

How Can I Cast to Anonymous Types in .NET, and When Should I Avoid Doing So?

Umwandlung in anonyme Typen

In .NET sind anonyme Typen unveränderliche Werttypen, die zur Kompilierzeit generiert werden. Sie können zur Darstellung von Daten verwendet werden, die nicht die Erstellung einer neuen Klasse rechtfertigen. Das Umwandeln in und aus anonymen Typen kann jedoch schwierig sein.

Eine Situation, in der das Umwandeln in einen anonymen Typ erforderlich sein kann, ist die Verwendung als Datenquelle für die Datenbindung in Windows Forms. Beim Versuch, die Current-Eigenschaft einer BindingSource in einen anonymen Typ umzuwandeln, tritt ein Fehler auf. Dies liegt daran, dass die Current-Eigenschaft eine Objektreferenz zurückgibt, die nicht direkt in einen anonymen Typ umgewandelt werden kann.

Um diese Einschränkung zu überwinden, kann ein Trick angewendet werden, um mithilfe des Compilers auf den richtigen Typ zu schließen. Durch die Erstellung eines Dummy-Objekts des richtigen anonymen Typs und dessen Zuweisung zum aktuellen Wert kann der Compiler dazu verleitet werden, den richtigen Typ für die Umwandlung abzuleiten.

Zum Beispiel:

var a = new { Id = 1, Name = "Bob" };
var b = (typeof(a) as DynamicObject).GetObject();

In diesem Beispiel wird die GetObject()-Methode der DynamicObject-Klasse verwendet, um eine Instanz des anonymen Typs zu erstellen. Der Ausdruck „typeof(a)“ wird verwendet, um den Typ des anonymen Typs abzuleiten.

Während dieser Trick zur Umwandlung in anonyme Typen verwendet werden kann, wird im Allgemeinen nicht empfohlen, anonyme Typen in Szenarien zu verwenden, in denen dies erforderlich ist im Programm herumgereicht werden. Stattdessen ist es besser, einen echten Typ zu verwenden, um die Übersichtlichkeit und Wartbarkeit zu verbessern.

Das obige ist der detaillierte Inhalt vonWie kann ich in .NET in anonyme Typen umwandeln, und wann sollte ich dies vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn