Laden...

Schlüsselwort var

Erstellt von Golo Roden vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.539 Views
Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren
Schlüsselwort var

Hallo,

in C# 3.0 wird es das Schlüsselwort var neu geben, um Type Infering zu unterstützen. Bei den klassischen Typen ist das ja auch alles kein Thema, aber bei anonymen Typen stellt sich mir seit einiger Zeit die Frage, wie ich eine Methode damit definieren würde?

Also quasi:

var MyVariable = from ... select;
MyObject.MyMethod(MyVariable);

Wie müsste ich die Methode MyMethod deklarieren?

Als void MyMethod(xyz MyParam) ... bloß, was gebe ich für xyz an? var? object?

Weiß da jemand näheres?

Danke,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

M
456 Beiträge seit 2004
vor 18 Jahren

Gute Frage. Ich selbst habe mit den neuen Spracherweiterungen noch nichts gemacht, würde aber sagen, dass du in diesem Fall den Typ xyz explizit definieren musst - also keine anonymen Typen verwenden kannst.
Das Ergebnis, das die from ... - Klausel zurückgibt, implementiert auf jeden Fall eine IEnumrable Schnittstelle. (Soweit ich weiß)

Ich würde es dann wohl so implementieren (mit Object Initializers):

struct MyType {
 int id;
 public int Id { get{return id;} set {id = value;} }
}

var myVar = from ... select new MyType { Id = ... }  // object initializer
MyMethod(myVar);

void MyMethod(IEnumerable<MyType> param)
{
...
}

Wie gesagt, ich habe die Sache noch nicht getestet... Ausprobieren 😉

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren

Das mit IEnumerable klingt vernünftig, da ich auf den anonymen Typ eh nur über Interface-Methoden zugreifen kann.

Danke 🙂!

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Der Eisbär,

bitte poste mal den Link/die Links, wo du die Infos über var/type infering her hast.

herbivore

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren

Hallo herbivore,

dazu habe ich leider keinen Link (wobei es unter dem Stichwort LinQ genug Ergebnisse geben sollte, dass da was entsprechendes dabei ist).

Mein Wissen darüber habe ich von der PDC05.

Viele Grüße,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de