Megosztás a következőn keresztül:


A nyelvi funkciók és a kódtártípusok közötti kapcsolatok

A C#-nyelv definíciója megköveteli, hogy egy szabványos kódtár bizonyos típusokkal és bizonyos akadálymentes tagokkal rendelkezzen ezeken a típusokon. A fordító olyan kódot hoz létre, amely ezeket a szükséges típusokat és tagokat használja számos különböző nyelvi funkcióhoz. Ezért a C#-verziók csak a megfelelő .NET-verzió és újabb verziók esetében támogatottak. Ez biztosítja a megfelelő futásidejű viselkedést, valamint az összes szükséges típus és tag rendelkezésre állását.

Ez a standard kódtár-funkcióktól való függőség az első verzió óta a C# nyelv része. Ebben a verzióban a következő példák szerepelnek:

  • Exception - az összes fordító által létrehozott kivételhez használatos.
  • String - szinonimája string.
  • Int32 - szinonimája int.

Az első verzió egyszerű volt: a fordító és a standard kódtár együtt lett szállítva, és mindegyiknek csak egy verziója volt.

A C# későbbi verziói időnként új típusokat vagy tagokat adtak hozzá a függőségekhez. Ilyenek például a következők: INotifyCompletion, CallerFilePathAttributeés CallerMemberNameAttribute. A C# 7.0 hozzáadta a függőséget ValueTuple a tuples nyelvi funkció implementálásához. A C# 8 többek között tartományokat és System.Range indexeket igényel System.Index és igényel. Minden új verzió további követelményeket is tartalmazhat.

A nyelvtervező csapat azon dolgozik, hogy minimálisra csökkentse a megfelelő szabványos kódtárban megkövetelt típusok és tagok felületét. Ez a cél egy olyan tiszta kialakítással van elosztva, amelyben az új kódtárfunkciók zökkenőmentesen beépülnek a nyelvbe. A C# jövőbeli verzióiban új funkciók jelennek meg, amelyek új típusokat és tagokat igényelnek egy standard kódtárban. A C# fordítóeszközök mostantól függetlenítve vannak a támogatott platformokon található .NET-kódtárak kiadási ciklusától.