Was sind einige Beispiele dafür, wie anonyme Typen nützlich sind?

8

Ich habe Artikel darüber gelesen, wie anonyme Typen in C # erstellt werden können.

Was sind einige Anwendungsfälle für diese Dinge? Für mich scheint es, als könnte es die Dinge ein wenig schwieriger zu verstehen machen, Objekte und ihre Mitglieder inline zu deklarieren.

Wann ist es sinnvoll, anonyme Typen zu verwenden?

    
Mithrax 21.04.2009, 20:38
quelle

8 Antworten

6

Ich verwende gerne anonyme Typen, wenn ich an eine Sammlung binden muss, die nicht genau zu dem passt, was ich brauche. Hier ist ein Beispiel aus meiner App:

%Vor%

Hier binde ich ein Datagrid an payments.ToList (). Die Sache hier ist, dass ich mehrere Objekte aggregieren kann, ohne ein Zwischenwort zu definieren.

    
JoshBerke 21.04.2009, 20:46
quelle
3

Ich benutze sie oft bei der Datenbindung an komplexe Steuerelemente - wie Raster. Es gibt mir eine einfache Möglichkeit zum Formatieren der Daten, die ich an das Steuerelement sende, um die Anzeige dieser Daten für die Steuerung einfacher zu gestalten.

GridView1.DataSource = myData.Select (x = & gt; neu {Name = x.Description, Datum = x.Date.ToShortDate ()});

Aber später, nachdem der Code stabil ist, werde ich die anonymen Klassen in benannte Klassen konvertieren.

Ich habe auch Fälle (Reporting Services), wo ich sie mit nicht-relationalen Daten laden muss, und Reporting Services verlangt, dass die Daten FLAT sind! Ich benutze LINQ / Lambda, um die Daten für mich leicht zu glätten.

    
Chris Brandsma 21.04.2009 20:44
quelle
2

LINQ / Lambdas

%Vor%

ASP.NET MVC-HTMLHelpers oder beim Zurückgeben von JSON

%Vor%

Tatsächlich, so ziemlich überall, wo Sie nur einen temporären Containertyp für eine kurzlebige Aktion benötigen.

    
tvanfosson 21.04.2009 20:50
quelle
2

aus dem Mund des Pferdes (Microsoft) :

  

Anonyme Typen bieten eine bequeme Möglichkeit   Möglichkeit, eine schreibgeschützte Gruppe zu kapseln   Eigenschaften in ein einzelnes Objekt   ohne vorher explizit zu müssen   Definieren Sie einen Typ.

Anonyme Typen sind in Bereichen nützlich, in denen Sie normalerweise eine definierte Struktur verwenden würden, aber nicht möchten, weil sie nur innerhalb eines begrenzten Bereichs verwendet werden. Ich neige dazu, sie als Datenquellen oder als Container für Aggregatwerte (Summe, Anzahl usw.) zu verwenden.

    
Jeremy 21.04.2009 20:52
quelle
1

Ich finde, dass sie ein sehr nützlicher Ersatz für einfache Struktur- / Strukturobjekte sind, besonders wenn sie mit VB.NET arbeiten, da sie nicht automatisch implementierte Eigenschaften unterstützt.

    
STW 21.04.2009 20:48
quelle
0

Hier ist ein guter Blogbeitrag von Charlie Calvert über die Verwendung anonymer Typen.

    
Inisheer 21.04.2009 20:47
quelle
0

Ich persönlich finde für anonyme Typen keinen großen Nutzen. Sie sind zumindest mit einer gewissen Vorsicht zu verwenden. Die Situation, in der sie normalerweise verwendet werden, wird beim Erstellen von LINQ-Abfragen verwendet, die mehrere Werte zurückgeben, und Sie müssen nur die abgefragten Daten für die Dauer der Funktion verwenden. (Wenn die Daten außerhalb verwendet werden müssen, können anonyme Typen nicht verwendet werden - Sie müssen Ihre eigenen deklarieren, und zwar aus gutem Grund, z. B. Lesbarkeit.) Allgemeiner können sie jedoch manchmal nützlich sein, wenn Sie einfache Lambda-Ausdrücke verwenden wieder habe ich selbst sehr selten nachgefragt. (Wenn ich "erforderlich" sage, gibt es fast je nach Kontext unterschiedliche Alternativen, aber manchmal anonyme Typen sind in der Tat die eleganteste Option.) Wenn Sie ein Codebeispiel wünschen, lassen Sie es mich wissen und ich Ich werde versuchen, eine mit einiger einigermaßen anständiger Anwendung zu finden.

    
Noldorin 21.04.2009 20:50
quelle
0

Sie sind nützlich, wenn Sie LINQ

verwenden %Vor%

Sehen Sie sich diese Einführung in LINQ

an     
Russ Cam 21.04.2009 20:47
quelle

Tags und Links