Dil özellikleri ve kitaplık türleri arasındaki ilişkiler

C# dil tanımı, belirli türlerin ve belirli erişilebilir üyelerin bu türlerde olması için standart bir kitaplık gerektirir. Derleyici, birçok farklı dil özelliği için bu gerekli türleri ve üyeleri kullanan kod oluşturur. Bu nedenle C# sürümleri yalnızca ilgili .NET sürümü ve daha yeni sürümler için desteklenir. Bu, doğru çalışma zamanı davranışını ve gerekli tüm türlerin ve üyelerin kullanılabilirliğini sağlar.

Standart kitaplık işlevselliğine olan bu bağımlılık, ilk sürümünden bu yana C# dilinin bir parçası olmuştur. Bu sürümde örnekler şunlardır:

  • Exception - derleyici tarafından oluşturulan tüm özel durumlar için kullanılır.
  • String - eş anlamlısı string.
  • Int32 - eş anlamlısı int.

İlk sürüm basitti: derleyici ve standart kitaplık birlikte gönderildi ve her birinin yalnızca bir sürümü vardı.

C# uygulamasının sonraki sürümleri zaman zaman bağımlılıklara yeni türler veya üyeler eklemiş. Örnekler şunlardır: INotifyCompletion, CallerFilePathAttributeve CallerMemberNameAttribute. C# 7.0, tanımlama grubu dil özelliğini uygulamak için öğesine ValueTuple bir bağımlılık ekledi. C# 8, diğer özelliklere ek olarak aralıklar ve dizinler için ve System.Range gerektirirSystem.Index. Her yeni sürüm ek gereksinimler ekleyebilir.

Dil tasarım ekibi, uyumlu bir standart kitaplıkta gerekli türlerin ve üyelerin yüzey alanını en aza indirmek için çalışır. Bu hedef, yeni kitaplık özelliklerinin dile sorunsuz bir şekilde eklendiği temiz bir tasarıma karşı dengelenir. C# uygulamasının gelecek sürümlerinde standart kitaplıkta yeni türler ve üyeler gerektiren yeni özellikler olacaktır. C# derleyici araçları artık desteklenen platformlardaki .NET kitaplıklarının yayın döngüsünden ayrılmıştır.