Puoi utilizzare parametri opzionali nel targeting per codice .NET 3.5?
-
06-07-2019 - |
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?
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.