Frage

Was sind die C # 3.0 Sprachfunktionen können wir in einer Anwendung verwenden, die .NET 2.0 Framework zielt?

PS: Ich weiß, einige wie Lambda-Ausdrücke und var Schlüsselwort

War es hilfreich?

Lösung

Bitte lesen Sie hier:

Verwendung von C # 3.0 (.NET 3.5) in einer Syntax Net 2.0 Anwendung

Für eine vollständige heruntergekommenen von dem, was Sie können und nicht tun können, wenn Sie das .NET 2.0 Framework Targeting und mit C # 3.0.

Zusammenfassung:

  • Sie kann nicht verwenden, um die neuen 3,5-Baugruppen (System.Data.Linq, System.Xml.Linq, System.Core).
  • Sie nicht verwenden Linq / Abfrage Erweiterungen oder Erweiterungsmethoden (aber siehe unten Möglichkeiten, um die Verwendung von sowohl Linq / Abfragesyntax und Erweiterungsmethoden zu ermöglichen!).
  • Sie können verwenden die Var Stichwort Lambda Aussagen , Objektinitialisierer , Anonyme Typen LINQBridge ) verwendet wird. Diese DLL effektiv neu implementiert viele der „fehlenden“ Typen, die Sie benötigen LINQ auszuführen, wenn das .NET 2.0 Framework-Targeting. Es implementiert auch den „Extension“ Typen für Erweiterungsmethoden zum Arbeiten benötigt, so einfaches Hinzufügen / Referenzierung der LINQBridge DLL aus dem Projekt ermöglicht LINQ, Abfragesyntax / Expressions und Erweiterungsmethoden!

Andere Tipps

Ich habe ein Artikel zu diesem Thema sehr rel="nofollow.

Kurz gesagt:

unterstützt:

  • Automatisch Eigenschaften implementiert, implizit typisierte lokale Variablen und Arrays, Objekt- und Auflistungsinitialisierer, anonyme Typen, Teilmethoden, Lambda-Ausdrücke umgewandelt in Delegattypen.

Teilweise unterstützt:

  • Erweiterungsmethoden (erfordert ein Attribut) und Abfrageausdrücke (erfordert wie LINQBridge etwas nützlich zu sein)

Nicht unterstützt:

  • Lambdas umgewandelt in Expressions Bäume

In der Tat habe ich, dass die Umwandlung in Expressions Bäume gehört ist zur Verfügung mit Hilfe von Mono-Implementierung von System.Core. Ich habe es noch nicht probiert, obwohl ... ich Sinn behalten, dies zu tun (und dann die Seite aktualisieren).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top