Puoi utilizzare i parametri facoltativi nel targeting per codice .NET 3.5?

Sto cercando di scrivere una libreria che utilizza la nuova funzione di parametri facoltativi di C # 4.0, ma voglio indirizzarla alla versione 3.5 del framework. È ansible?

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

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

Quindi sì, è tutto sullo zucchero sintattico.

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

Quindi, se hai automatizzato build in esecuzione, – usando NANT o qualcos’altro usando il compilatore della riga di comando – le tue build falliranno.

Come Jon Skeet, stavo ottenendo che il “parametro opzionale” Feature “non può essere usato perché non fa parte delle specifiche del linguaggio 3.0 C #”. Tuttavia, nella versione RTM di Visual Studio è ansible selezionare la versione della lingua su “predefinito” in Proprietà progetto-> Build-> Avanzate. Ha funzionato per me.

È ansible utilizzare i parametri facoltativi e denominati in un framework di destinazione di una versione precedente a condizione che gli assembly vengano creati all’interno di un ambiente di sviluppo per v4 (ad esempio VS2010). Ma si dovrebbe essere consapevoli della fase di compilazione o pubblicazione di siti Web in questo caso verrà utilizzato il compilatore del framework di destinazione. E poiché i compilatori dei vecchi framework non capiscono la syntax dei params opzionali e nominati, si verificheranno errori del compilatore.

Vai alle proprietà del progetto -> Crea scheda -> fai clic sul pulsante ‘Avanzate’ -> imposta la versione della lingua su ‘default’ -> salva -> sii felice;)

Non ho installato VS2010 qui per controllare, ma credo che questa sarebbe una caratteristica puramente linguistica, e quindi dovrebbe essere utilizzabile a prescindere dal framework che viene preso di mira.

Modifica: guardando questo link (e alcuni altri), sembra che i parametri facoltativi compili agli argomenti del metodo con un attributo [opt] nel il. Non so se questo parametro esistesse nelle precedenti versioni del clr, ma comunque la mia ipotesi sarebbe che lo faccia.

VB.NET ha parametri facoltativi se si desidera utilizzare i parametri facoltativi in ​​.NET 3.5.