Hallo,
ich nutze VS 2008 Team und programmiere auf .Net 2.0. Kann ich code schon die automatischen Properties nutzen. z.B.:
public Property MyProperty{ get; set; }
Besten Dank antoschka
Hallo antoschka,
ich nutze VS 2008 Team und programmiere auf .Net 2.0. Kann ich code schon die automatischen Properties nutzen.
Probiere es doch einfach aus 😉
Eigentlich sollte es funktionieren, solange du den Code mit dem C# 3.0 Compiler kompilierst (egal, welches Targetframework).
Unter VS 2008 sollte dies also der Fall sein.
Genau da lag meine Konfussion.
Ich habe über das Feature gelesen. Mein Kunde gibt aber als Targetframework 2.0 vor. Auf meinem Computer habe ich auch 3.0 & 3.5 installiert jedoch in meinem Projekt nur 2.0 eingebunden,damit ich nicht aus Versehen ein anderes Feature nutze.
Könnte ich also auto-property oder vielleicht sogar auch lambda nutzen und den Code trotzdem auf einem 2.0 Framework ausführen?
Vielen Dank im Voraus für die Erklärung
antoschka
Könnte ich also auto-property oder vielleicht sogar auch lambda nutzen und den Code trotzdem auf einem 2.0 Framework ausführen?
Wie gesagt: Alles reine "Compilermagie".
Allein dieser ist dafür verantwortlich, dass die Auto-implemented-Properties in "richtige" Properties mit Backingfield umgesetzt werden.
Analog verhält es sich mit den Lambda-Expressions.
Und da der "neue" C# Compiler verschiedene Frameworkversionen unterstützt, kann man einige C# 3.0 Features auch mit früheren .NET Versionen verwenden.
Ausschlaggebend für die benötigte Frameworkversion ist die Einstellung in VS bzw. der entsprechend an den Compiler übergebene Parameter.
Das man bei der Variablendeklaration einfach 'var' schreiben kann ist meines Wissens auch C# 3.0 und das geht auch bei Zielplattform 2.0
Und mit LinqBridge zusammen gehen auch ExtensionMethods.
Hallo antoschka
Das hat nicht direkt was mit der Version des .Net Frameworks zu tun. Verantwortlich dafür ist der Visual C# Compiler. Bei Visual Studio 2008 wird eine andere Version als bei Visual Studio 2005 verwendet.
Der neuere Visual C# Compiler ist in der Lage, die automatisch implementierten Eigenschaften zu interpretieren. Außerdem kann er zwischen verschiedenen Versionen des .Net Frameworks hin und her schalten.
Das bedeutet, das einige Programme, die in Visual Studio 2008 gegen das .Net Framework 2.0 compiliert werden, sich zwangsläufig nicht mehr mit Visual Studio 2005 comilieren lassen.
Letztendlich ist es dem .Net Framework jedoch egal, wie Eigenschaften im Quellcode spezifiziert werden, solange es sich später in MSIL Code umwandeln lässt.
Als Beweis kann man mit dem ILDASM Tool sich den MSIL Code anzeigen lassen. Dann sieht man, das Eigenschaften gar nicht mehr existieren sondern wie in guter alter COM Manier, in eine Getter und Setter Methode umgewandelt wurden.
Gruß,
Thomas van Veen