Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La definizione del linguaggio C# richiede una libreria standard per avere determinati tipi e determinati membri accessibili in tali tipi. Il compilatore genera codice che usa questi tipi e membri obbligatori per molte funzionalità del linguaggio diverse. Per questo motivo, le versioni C# sono supportate solo per la versione .NET corrispondente e versioni successive. Ciò garantisce il corretto comportamento di runtime e la disponibilità di tutti i tipi e membri necessari.
Questa dipendenza dalla funzionalità della libreria standard fa parte del linguaggio C# dalla prima versione. In tale versione sono inclusi esempi:
- Exception : usato per tutte le eccezioni generate dal compilatore.
-
String - sinonimo di
string. -
Int32 - sinonimo di
int.
La prima versione era semplice: il compilatore e la libreria standard forniti insieme e c'era una sola versione di ognuna.
Le versioni successive di C# hanno occasionalmente aggiunto nuovi tipi o membri alle dipendenze. Gli esempi includono: INotifyCompletion, CallerFilePathAttributee CallerMemberNameAttribute. C# 7.0 ha aggiunto una dipendenza da ValueTuple per implementare la funzionalità del linguaggio tuple . C# 8 richiede System.Index e System.Range per intervalli e indici, tra le altre funzionalità. Ogni nuova versione potrebbe aggiungere requisiti aggiuntivi.
Il team di progettazione del linguaggio lavora per ridurre al minimo l'area di superficie dei tipi e dei membri richiesti in una libreria standard conforme allo standard. Questo obiettivo è bilanciato rispetto a una progettazione pulita in cui le nuove funzionalità della libreria vengono incorporate senza problemi nel linguaggio. Nelle versioni future di C# saranno disponibili nuove funzionalità che richiedono nuovi tipi e membri in una libreria standard. Gli strumenti del compilatore C# sono ora separati dal ciclo di rilascio delle librerie .NET nelle piattaforme supportate.