Domanda

Sto cercando di scrivere una libreria che utilizza la nuova funzionalità dei parametri opzionali di C # 4.0, ma voglio indirizzarla alla versione 3.5 del framework. È possibile?

I parametri opzionali sono zucchero sintattico allo stesso modo dei metodi di estensione?

È stato utile?

Soluzione

Con VS2010 RC, sono stato in grado di creare un'applicazione .NET 3.5 che utilizza parametri opzionali in C #.

Quindi sì, si tratta solo di zucchero sintattico.

Altri suggerimenti

VS 2010 supporta parametri opzionali in C # per soluzioni .NET 3.5. Un avvertimento, tuttavia, è che il compilatore della riga di comando segnalerà errori.

Quindi, se hai build automatizzate in esecuzione, - usando NANT o qualcos'altro usando il compilatore della riga di comando - le tue build falliranno.

Come Jon Skeet, stavo ottenendo " La funzione 'parametro opzionale' non può essere usata perché non fa parte della specifica del linguaggio 3.0 C # " ;. Tuttavia, nella versione RTM di Visual Studio puoi selezionare Versione lingua su " default " in Proprietà progetto- > Build- > Advanced. Questo ha funzionato per me.

È possibile utilizzare parametri facoltativi e denominati in un framework di destinazione di una versione precedente purché gli assembly siano creati all'interno di un ambiente di sviluppo per v4 (ad esempio VS2010). Tuttavia, è necessario essere consapevoli della compilazione o della pubblicazione di siti Web in fase di esecuzione in questo caso verrà utilizzato il compilatore del framework di destinazione. E poiché i compilatori dei framework più vecchi non comprendono la sintassi dei parametri opzionali e denominati, si tradurranno in errori del compilatore.

Vai alle proprietà del progetto - > Scheda Build - > fai clic sul pulsante "Avanzate" - > imposta la versione della lingua su "default" - > salva - > sii felice;)

Non ho VS2010 installato qui per verificare, ma credo che questa sarebbe una funzione puramente linguistica, e quindi dovrebbe essere utilizzabile indipendentemente dal framework preso di mira.

Modifica: guardando questo link (e pochi altri), sembra che i parametri opzionali vengano compilati in argomenti di metodo con un attributo [opt] in il. Non so se questo parametro esistesse nelle versioni precedenti di clr, ma credo comunque che lo sia.

VB.NET ha parametri opzionali se si desidera utilizzare parametri opzionali in .NET 3.5.

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