Verwendung von var in linq

8

Was macht var im folgenden Fall wirklich?

%Vor%     
maztt 02.05.2010, 17:30
quelle

6 Antworten

7

var ist ein Platzhalter für einen vom Compiler erstellten ("anonymen") Typ Das hat drei Eigenschaften, ProductName , Category und Price .

Es ist KEINE Variante (z. B. wie in Visual Basic). Es ist ein konkreter Typ und kann auch an anderen Stellen im Code verwendet werden.

    
Eric J. 02.05.2010, 17:32
quelle
9

Die zwei Zeilen:

%Vor%

und

%Vor%

sind gleichwertig. CompilerGeneratedType ist ein Typ, der vom Compiler erstellt wird und die drei öffentlichen Eigenschaften ProductName, Price, and Category aufweist. var ist aus zwei Gründen hilfreich:

  1. CompilerGeneratedType wird vom Compiler generiert, so dass es unmöglich ist, eine Variable mit diesem Typ zu deklarieren.
  2. Sie müssen nicht zu sehr über den Sammlungs-Typ des Ergebnisses nachdenken. Linq kann sein Ding machen und du musst dir keine Sorgen machen.
mrmcgreg 02.05.2010 17:44
quelle
4

In diesem speziellen Fall ist der Typ von productInfos ein Compiler-generierter anonymer Typ mit 3 Eigenschaften, Produktname, Kategorie und Preis.

    
Mark Simpson 02.05.2010 17:36
quelle
3

Variablen mit var sind implizit typisierte lokale Variablen, die stark typisiert sind, als ob Sie den Typ selbst deklariert hätten, aber der Compiler bestimmt den Typ. es erhält den Typ des Ergebnisses.

und hier eine nette Lektüre C # -Debatte: Wann sollten Sie var verwenden?

und hier ein weiteres C # 3.0-Lernprogramm

    
SQueek 02.05.2010 17:34
quelle
2

var = Programmierer freundlich = weniger tippen = macht Sie faul (eine andere Art, es zu betrachten) = bringt Unklarheit zu Code wenn neu zu 3.5 FW

    
Nauman 02.05.2010 18:12
quelle
0

Es erleichtert Ihnen, den genauen Typ Ihres Abfrageergebnisses manuell deklarieren zu müssen. Aber ich muss einfühlen, das ist keine dynamische Typisierung: Die Variable productInfos hat einen statischen Typ, aber sie wird vom Compiler anstelle von Ihnen erstellt.

    
kahoon 02.05.2010 17:35
quelle

Tags und Links