Heim >Backend-Entwicklung >C++ >Wie kann ich anonyme Typen von einer C#-Methode zurückgeben?

Wie kann ich anonyme Typen von einer C#-Methode zurückgeben?

DDD
DDDOriginal
2024-12-25 15:34:09743Durchsuche

How Can I Return Anonymous Types from a C# Method?

Anonyme Typen in C# zurückgeben

In C# sind anonyme Typen eine praktische Möglichkeit, temporäre Objekte mit benutzerdefinierten Eigenschaften zu erstellen. Wenn es jedoch darum geht, anonyme Typen von einer Methode zurückzugeben, gibt es eine Einschränkung.

Problem:

Wie gibt man unter Berücksichtigung der Folgendes einen anonymen Typ von einer Methode zurück? folgender Code:

public "TheAnonymousType" TheMethod(SomeParameter)
{
  using (MyDC TheDC = new MyDC())
  {
     var TheQueryFromDB = (....
                           select new { SomeVariable = ....,
                                        AnotherVariable = ....}
                           ).ToList();

      return "TheAnonymousType";
    }
}

Antwort:

Leider Es ist nicht möglich, einen anonymen Typ direkt von einer Methode in C# zurückzugeben.

Der Grund liegt in der Tatsache, dass anonyme Typen zur Laufzeit kompiliert werden und zum Zeitpunkt der Kompilierung keinen bekannten Typ haben. Daher können sie nicht als spezifischer benannter Typ zurückgegeben werden, wie etwa „TheAnonymousType“ in Ihrem Beispiel.

Lösung:

Um diese Einschränkung zu umgehen, haben Sie zwei Möglichkeiten :

  1. Verwenden Sie einen stark typisierten anonymen Typ:
    Erstellen ein stark typisierter anonymer Typ mit var anonymObject = new { ... }. Dadurch wird ein benannter Typ mit den angegebenen Eigenschaften erstellt, der von der Methode zurückgegeben werden kann.
  2. Verwenden Sie ein Containerobjekt:
    Gibt den anonymen Typ als Teil eines Containerobjekts zurück. wie zum Beispiel ein List. Dadurch können Sie eine Sammlung von Objekten zurückgeben, einschließlich anonymer Typen.

    Das obige ist der detaillierte Inhalt vonWie kann ich anonyme Typen von einer C#-Methode zurückgeben?. 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