Domanda

Quali sono le caratteristiche del linguaggio C # 3.0 che possiamo usare in un'applicazione destinata al framework .Net 2.0?

PS: conosco poche espressioni Lambda e var parola chiave

È stato utile?

Soluzione

Vedi qui:

Uso della sintassi C # 3.0 (.Net 3.5) in un'applicazione .Net 2.0

Per una descrizione completa di ciò che è possibile e non è possibile fare quando si utilizza .NET Framework 2.0 e si utilizza C # 3.0.

In sintesi:

I metodi di estensione in qualche modo funzionano, tuttavia richiedono " System.Runtime.CompilerServices.ExtensionAttribute " per funzionare, e questo tipo si trova nella DLL System.Core (che non fa parte strettamente del framework .NET 2.0).

La sintassi della query non può essere utilizzata " out of the box " per così dire, tuttavia, può essere utilizzato se una DLL di terze parti (come LINQBridge ) viene utilizzato. Questa DLL reimplementa efficacemente molti dei "mancanti" tipi necessari per eseguire LINQ quando si utilizza il framework .NET 2.0. Implementa anche l '"ExtensionAttribute" tipo necessario per far funzionare i metodi di estensione, quindi semplicemente aggiungendo / facendo riferimento alla DLL LINQBridge dal tuo progetto abiliterai LINQ, sintassi delle query / espressioni e metodi di estensione!

Altri suggerimenti

Ho un proprio su questo argomento .

In breve:

supportati:

  • Proprietà implementate automaticamente, variabili e matrici locali tipizzate in modo implicito, inizializzatori di oggetti e raccolte, tipi anonimi, metodi parziali, espressioni lambda convertite in tipi delegati.

Parzialmente supportato:

  • Metodi di estensione (richiede un attributo) ed espressioni di query (richiede qualcosa come LINQBridge per essere utili)

Non supportato:

  • Lambdas convertiti in alberi delle espressioni

In effetti, ho sentito che la conversione in alberi di espressione è disponibile con l'aiuto dell'implementazione di Mono di System.Core . Non l'ho ancora provato però ... Continuo a significare farlo (e quindi aggiornare la pagina).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top