C'nin geçmişi#

Bu makale, C# dilinin her ana sürümünün geçmişini sağlar. C# ekibi yenilik yapmaya ve yeni özellikler eklemeye devam ediyor. Gelecek sürümler için dikkate alınan özellikler de dahil olmak üzere ayrıntılı dil özelliği durumu, GitHub'da dotnet/roslyn deposunda bulunabilir. Belirli bir özelliğin dile ne zaman eklendiğini bulmak için GitHub'daki deposundaki dotnet/csharplang dosyasına başvurun.

Önemli

C# dili, C# belirtiminin bazı özellikler için standart bir kitaplık olarak tanımladığı tür ve yöntemlere dayanır. .NET platformu bu tür ve yöntemleri bir dizi pakette sunar. Örneklerden biri özel durum işlemedir. Her bir throw deyim veya ifadenin, atılan nesnenin Exception'ten türetildiğinden emin olmak için denetlendiği kontrol edilir. Benzer şekilde, yakalanan türün catch'dan türetilmiş olduğundan emin olmak için her Exception denetlenmektedir. Her sürüm yeni gereksinimler ekleyebilir. Eski ortamlarda en son dil özelliklerini kullanmak için belirli kitaplıkları yüklemeniz gerekebilir. Bu bağımlılıklar, her belirli sürüm için sayfada belgelenmiştir. Bu bağımlılık hakkında bilgi edinmek için dil ve kitaplık arasındaki ilişkiler üzerine daha fazla bilgi edinebilirsiniz.

C# sürüm 14

Kasım 2025'te yayınlandı

C# 14 aşağıdaki yeni özellikleri içerir:

C# sürüm 13

Kasım 2024'te yayımlandı

C# 13 aşağıdaki yeni özellikleri içerir:

  • params koleksiyonları: params değiştirici dizi türleriyle sınırlı değildir. Artık params'ı tanınan herhangi bir koleksiyon türüyle, Span<T>ve arabirim türleri de dahil olmak üzere, kullanabilirsiniz.
  • Yeni lock türü ve semantiği: lock deyiminin hedefi bir System.Threading.Lockise, derleyici Lock.EnterScope() yöntemini kullanarak özel kapsam girmek için kod oluşturur. tarafından döndürülen ref struct, özel kullanım kapsamından çıkmak için Dispose() desenini destekler.
  • Yeni kaçış dizisi - \e: \e karakteri, Unicode ESCAPEiçin karakter sabit kaçış dizisi olarak U+001B kullanabilirsiniz.
  • Yöntem gruplarını içeren çözümlemeyi aşırı yüklemek için küçük iyileştirmeler.
  • Nesne başlatıcılarda örtük dizin oluşturucu erişimi: Bir nesne başlatıcı ifadesinde artık örtük "uçtan" dizin işleci ^izin verilir.
  • ref yerel öğeleri ve unsafe bağlamlarını yineleyicilerde ve asenkron yöntemlerde kullanabilirsiniz.
  • Arabirimleri uygulamak için ref struct türlerini kullanabilirsiniz.
  • Genel türlerdeki tür parametreleri için ref struct türlerini bağımsız değişken olarak kullanabilirsiniz.
  • Kısmi özelliklere ve dizin oluşturuculara artık partial türlerde izin verilir.
  • Aşırı yükleme çözümleme önceliği, kitaplık yazarlarının bir aşırı yüklemeyi diğerlerinden daha iyi olarak belirlemesine olanak tanır.

C# sürüm 12

Kasım 2023'te yayınlandı

C# 12'ye aşağıdaki özellikler eklendi:

Ayrıca, Interceptors - Önizleme özelliği olarak yayımlandı.

Genel olarak C# 12, C# kodu yazmanızı daha üretken hale getiren yeni özellikler sağlar. Zaten tanıdığınız söz dizimi daha fazla yerde kullanılabilir. Diğer söz dizimi ilgili kavramlar için tutarlılık sağlar.

C# sürüm 11

Kasım 2022'de yayınlandı

C# 11'de aşağıdaki özellikler eklendi:

C# 11, genel matematiği ve bu hedefi destekleyen çeşitli özellikleri tanıtır. Tüm sayı türleri için sayısal algoritmaları bir kez yazabilirsiniz. Gerekli üyeler ve otomatik varsayılan yapılar gibi türlerle struct çalışmayı kolaylaştıracak daha fazla özellik vardır. Ham dize öbekleri, dize ilintilemelerinde yeni satır ve UTF-8 dize öbekleri ile dizelerle çalışmak daha kolay hale gelir. Dosya yerel türleri gibi özellikler kaynak oluşturucuların daha basit olmasını sağlar. Son olarak, liste desenleri desen eşleştirme için daha fazla destek ekler.

C# sürüm 10

Kasım 2021'de yayınlandı

C# 10, C# diline aşağıdaki özellikleri ve geliştirmeleri ekler:

C# 10, tören kaldırma, algoritmalardan veri ayırma ve .NET Çalışma Zamanı için geliştirilmiş performans temaları üzerinde çalışmaya devam eder.

Özelliklerin çoğu, aynı kavramları ifade etmek için daha az kod yazdığınız anlamına gelir. Kayıt yapıları, kayıt sınıflarının yaptığı yöntemlerin çoğunu sentezler. Yapılar ve anonim türler ifadelerle birlikte kullanılabilir. Genel kullanım yönergeleri ve dosya kapsamlı ad alanı bildirimleri , bağımlılıkları ve ad alanı kuruluşunu daha net ifade ettiğiniz anlamına gelir. Lambda geliştirmeleri , lambda ifadelerini kullanıldıkları yerde bildirmeyi kolaylaştırır. Yeni özellik desenleri ve yapısızlaştırma geliştirmeleri daha kısa kodlar oluşturur.

Yeni ilişkilendirilmiş dize işleyicileri ve AsyncMethodBuilder davranışı performansı artırabilir. Bu dil özellikleri, .NET 6'da performans iyileştirmeleri elde etmek için .NET Çalışma Zamanı'nda uygulandı.

C# 10 ayrıca .NET sürümleri için düzenli yıllık döngüye belirgin bir geçiş işaret eder. Her özellik yıllık bir zaman diliminde tamamlanamadığından, C# 10'da birkaç "önizleme" özelliğini deneyebilirsiniz. Arabirimlerdeki hem genel öznitelikler hem de statik soyut üyeler kullanılabilir, ancak bu önizleme özellikleri son sürümden önce değişebilir.

C# sürüm 9

Kasım 2020'de yayınlandı

C# 9, .NET 5 ile yayımlandı. .NET 5 sürümünü hedefleyen tüm derlemeler için varsayılan dil sürümüdür. Aşağıdaki yeni ve gelişmiş özellikleri içerir:

C# 9, önceki sürümlerden üç temanın devamını verir: tören kaldırma, algoritmalardan veri ayırma ve daha fazla yerde daha fazla desen sağlama.

Üst düzey deyimler , ana programınızın daha kolay okunduğu anlamına gelir. Törene daha az ihtiyaç vardır: ad alanı, Program sınıf ve static void Main() bunların hepsi gereksizdir.

records, eşitlik için değer semantiğine uygun başvuru türleri için kısa bir söz dizimi sağlar. Genellikle en düşük davranışı tanımlayan veri kapsayıcılarını tanımlamak için bu türleri kullanırsınız. Init-only özellik ayarlayıcıları, kayıtlarda tahribatsız değişiklik (with kod ifadeleri) için yetenek sağlar. C# 9 ayrıca türetilmiş kayıtların sanal yöntemleri geçersiz kılıp temel yöntemin dönüş türünden türetilmiş bir tür döndürebilmesi için birlikte değişken dönüş türleri ekler.

Desen eşleştirme özellikleri çeşitli yollarla genişletildi. Sayısal türler artık aralık desenlerini destekliyor. Desenler, and, or ve not desenleri kullanılarak birleştirilebilir. Daha karmaşık desenleri netleştirmek için parantezler eklenebilir:

C# 9, yeni desen eşleştirme geliştirmeleri içerir:

  • Tür desenleri belirli bir türle eşleşen bir nesneyle eşleşir
  • Ayraçlı desenler, desen birleşimlerinin önceliğini belirler veya vurgular
  • Konjonktif and desenler her iki desenin de eşleşmesini gerektirir
  • Ayrık or desenlerin eşleşmesi için iki desen gerekir
  • Olumsuz desenler not için desenin eşleşmemesi gerekir
  • İlişkisel desenler , girişin belirli bir sabitten küçük, büyük, küçük veya eşit ya da belirli bir sabitten büyük veya eşit olmasını gerektirir

Bu desenler, desenlerin söz dizimini zenginleştirir. En yaygın kullanımlardan biri, null denetim için yeni bir söz dizimidir:

if (e is not null)
{
    // ...
}

Bu desenlerden herhangi biri, desenlere izin verilen herhangi bir bağlamda kullanılabilir: is desen ifadeleri, switch ifadeler, iç içe desenler ve bir switch deyimin case etiketinin deseni.

Başka bir özellik kümesi de C# dilinde yüksek performanslı bilgi işlemi destekler:

  • nint ve nuint türleri, hedef CPU'daki yerel boyutlu tamsayı türlerini modeller.
  • İşlev işaretçileri temsilci benzeri işlevler sağlarken, temsilci nesnesi oluşturmak için gerekli ayırmaları önler.
  • Yönerge sayısını azaltmak için localsinit yönergesi atlanabilir.

Performans ve interoperabilite

Başka bir geliştirme kümesi de kod oluşturucuların işlevsellik eklediği senaryoları destekler:

  • Modül başlatıcıları, bir derleme yüklendiğinde çalışma zamanı tarafından çağırılan yöntemlerdir.
  • Kısmi yöntemler , yeni erişilebilir değiştiricileri ve geçersiz olmayan dönüş türlerini destekler. Böyle durumlarda bir uygulama sağlanmalıdır.

Uyum ve bitiş özellikleri

C# 9, hem kod yazma hem de okuma amacıyla geliştirici üretkenliğini artıran diğer birçok küçük özellik ekler:

  • Hedef tür new ifadeleri
  • static anonim işlevler
  • Hedef türü koşullu ifadeler
  • GetEnumerator() döngüleri için foreach uzantısı desteği
  • Lambda ifadeleri atma parametrelerini bildirebilir
  • Öznitelikler yerel işlevlere uygulanabilir

C# 9 sürümü, C# dilini modern, genel amaçlı bir programlama dili olarak tutmak için çalışmaya devam eder. Özellikler modern iş yüklerini ve uygulama türlerini desteklemeye devam eder.

C# sürüm 8.0

Eylül 2019'da yayınlandı

C# 8.0, özellikle .NET Core'a yönelik ilk büyük C# sürümüdür. Bazı özellikler yeni Ortak Dil Çalışma Zamanı (CLR) özelliklerine, diğerleri ise yalnızca .NET Core'a eklenen kitaplık türlerine dayanır. C# 8.0, C# diline aşağıdaki özellikleri ve geliştirmeleri ekler:

Varsayılan arabirim üyeleri CLR'de geliştirmeler gerektirir. Bu özellikler .NET Core 3.0 için CLR'ye eklendi. Aralıklar, dizinler ve zaman uyumsuz akışlar, .NET Core 3.0 kitaplıklarında yeni türler gerektirir. Derleyicide uygulanırken null atanabilir başvuru türleri, bağımsız değişkenlerin ve dönüş değerlerinin null durumuyla ilgili anlam bilgisi sağlamak için kitaplıklara açıklama eklendiğinde çok daha kullanışlıdır. Bu ek açıklamalar .NET Core kitaplıklarına ekleniyor.

C# sürüm 7.3

Mayıs 2018'de yayınlandı

C# 7.3 sürümünün iki ana teması vardır. Bir tema, güvenli kodun güvenli olmayan kod kadar yüksek performanslı olmasını sağlayan özellikler sağlar. İkinci tema, mevcut özelliklerde artımlı iyileştirmeler sağlar. Bu sürümde yeni derleyici seçenekleri de eklendi.

Aşağıdaki yeni özellikler, güvenli kod için daha iyi performans temasını destekler:

  • Sabit alanlara sabitleme yapmadan erişebilirsiniz.
  • Yerel değişkenleri yeniden atayabilirsiniz ref .
  • stackalloc dizilerinde başlatıcıları kullanabilirsiniz.
  • fixed ifadelerini, bir deseni destekleyen herhangi bir türle kullanabilirsiniz.
  • Daha genel kısıtlamalar kullanabilirsiniz.

Mevcut özelliklerde aşağıdaki geliştirmeler yapılmıştır:

  • == ve !='i demet türleriyle test edebilirsiniz.
  • İfade değişkenlerini daha fazla konumda kullanabilirsiniz.
  • Otomatik olarak uygulanan özelliklerin yedekleme alanına öznitelikler ekleyebilirsiniz.
  • in ile bağımsız değişkenler farklı olduğunda yöntem çözümleme süreci geliştirildi.
  • Aşırı yükleme çözümlemesinde artık daha az belirsiz durum var.

Yeni derleyici seçenekleri şunlardır:

  • -publicsign derlemelerinin Açık Kaynak Yazılım (OSS) imzasını etkinleştirmek için.
  • -pathmap kaynak dizinlere eşleme sağlamak amacıyla.

C# sürüm 7.2

Kasım 2017'de yayınlandı

C# 7.2 birkaç küçük dil özelliği ekledi:

  • stackalloc dizilerdeki başlatıcılar.
  • Deseni destekleyen herhangi bir türe sahip deyimleri kullanın fixed .
  • Sabit alanlara sabitlemeden erişin.
  • Yerel değişkenleri yeniden atayın ref .
  • readonly struct türlerini, bir yapının değişmez olduğunu ve üye yöntemlerine in parametresi olarak geçirilmesi gerektiğini belirtmek için bildirin.
  • Parametrelere in değiştiricisini ekleyin, böylece bir bağımsız değişkenin başvuru ile geçirildiğini ancak çağrılan yöntem tarafından değiştirilmediğini belirtebilirsiniz.
  • Yöntemin ref readonly değerini başvuruya göre döndürdüğünü ancak bu nesneye yazma işlemine izin vermediğini belirtmek için yöntem dönüşlerinde değiştiriciyi kullanın.
  • ref struct türlerini bildirin, böylece bir yapı türünün yönetilen belleğe doğrudan eriştiğini ve her zaman yığında ayrılması gerektiğini belirtmiş olun.
  • Daha genel kısıtlamalar kullanın.
  • Sonda olmayan adlandırılmış bağımsız değişkenler:
    • Konumsal bağımsız değişkenler adlandırılmış bağımsız değişkenlerin ardından yerleştirilebilir.
  • Sayısal değişmez değerlerde önde gelen alt çizgi:
    • Sayısal değişmez değerler artık yazdırılan basamaklardan önce önde gelen alt çizgilere sahip olabilir.
  • private protected erişim değiştiricisi:
    • Erişim değiştiricisi private protected , aynı derlemedeki türetilmiş sınıflar için erişimi etkinleştirir.
  • Koşullu ref ifadeler:
    • Koşullu ifadenin (?:) sonucu artık bir başvuru olabilir.

C# sürüm 7.1

Ağustos 2017'de yayınlandı

C#, C# 7.1 ile nokta sürümlerini yayınlamaya başladı. Bu sürüm dil sürümü seçimi yapılandırma öğesini, üç yeni dil özelliğini ve yeni derleyici davranışını ekledi.

Bu sürümdeki yeni dil özellikleri şunlardır:

  • async Main yöntem
    • Bir uygulamanın giriş noktası değiştiriciye async sahip olabilir.
  • default literal ifadeler
    • Hedef tür çıkarılabildiğinde varsayılan değer ifadelerinde varsayılan değişmez değer ifadelerini kullanabilirsiniz.
  • Çıkarsanan tuple öğe adları
    • Tuple öğelerinin adları, çoğu durumda tuple başlatma işleminden çıkarılabilir.
  • Genel tür parametrelerinde desen eşleştirme
    • Türü genel tür parametresi olan değişkenlerde desen eşleştirme ifadelerini kullanabilirsiniz.

Son olarak, derleyicinin iki seçeneği -refout vardır ve -refonly bu seçenek başvuru derlemesi oluşturmayı denetler.

C# sürüm 7.0

Mart 2017'de yayınlandı

C# sürüm 7.0, Visual Studio 2017 ile yayımlandı. Bu sürümde C# 6.0'ın çizgisinde bazı gelişimsel ve havalı özellikler vardır. Yeni özelliklerden bazıları şunlardır:

Dahil olan diğer özellikler:

Bu özelliklerin tümü geliştiriciler için yeni özellikler ve her zamankinden daha temiz kod yazma fırsatı sunar. Anahtar sözcük ile kullanılacak değişken bildirimlerini kısaltmak ve demet aracılığıyla birden çok dönüş değerine izin vermek, öne çıkan özellikler arasındadır. .NET Core artık herhangi bir işletim sistemini hedeflemekte ve buluta ve taşınabilirliğe odaklanmaktadır. Bu yeni özellikler, yeni özelliklerin yanı sıra dil tasarımcılarının düşüncelerini ve zamanını da kaplar.

C# sürüm 6.0

Temmuz 2015'te yayınlandı

Visual Studio 2015 ile yayınlanan sürüm 6.0, C# programlamayı daha üretken hale getiren birçok küçük özellik yayımladı. Bunlardan bazıları şunlardır:

Diğer yeni özellikler şunlardır:

  • Dizin başlatıcıları
  • Catch/finally bloklarında bekleyin
  • Yalnızca erişimci (getter) özellikleri için varsayılan değerler

Bu özelliklere birlikte bakarsanız ilginç bir desen görürsünüz. Bu sürümde C#, kodu daha kısa ve okunabilir hale getirmek için dil klişelerini ortadan kaldırmaya başladı. Yani temiz, basit kod hayranları için, bu dil sürümü büyük bir galibiyet oldu.

Kendi başına geleneksel bir dil özelliği olmasa da bu sürümle birlikte bir şey daha yaptılar. Derleyici olarak Roslyn hizmeti yayımlandı. C# derleyicisi artık C# dilinde yazılmıştır ve derleyiciyi programlama çabalarınızın bir parçası olarak kullanabilirsiniz.

C# sürüm 5.0

Ağustos 2012'de yayınlandı

Visual Studio 2012 ile yayınlanan C# sürüm 5.0, dilin odaklanmış bir sürümüdür. Bu sürüm için harcanan çabanın neredeyse tamamı başka bir çığır açan dil kavramına geçti: asenkron programlama için async ve await modeli. Önemli özellikler listesi aşağıdadır:

Çağırıcı bilgi özniteliği, tekrarlanan yansıma kodlarına başvurmadan çalıştırdığınız bağlamla ilgili bilgileri kolayca elde etmenize olanak tanır. Tanılama ve günlüğe kaydetme görevlerinde birçok kullanımı vardır.

Ama async ve await bu yayının gerçek yıldızları. Bu özellikler 2012'de ortaya çıktığında C#, asenkron özelliğini dilin içine birinci sınıf bir özellik olarak entegre ederek algıyı yeniden değiştirdi.

C# sürüm 4.0

Nisan 2010'da yayınlandı

Visual Studio 2010 ile yayınlanan C# sürüm 4.0 bazı ilginç yeni özellikleri kullanıma sunuldu:

Katıştırılmış birlikte çalışma türleri, uygulamanız için COM birlikte çalışma derlemeleri oluşturmanın dağıtım acısını hafifletir. Genel kovaryans ve kontravaryans, generikleri kullanmanız için size daha fazla güç verir, ancak bu kavramlar biraz akademik kalabilir ve muhtemelen çerçeve ve kütüphane yazarları tarafından daha çok takdir edilir. Adlandırılmış ve isteğe bağlı parametreler birçok yöntem aşırı yüklemelerini ortadan kaldırmanıza ve kolaylık sağlamanıza olanak sağlar. Ancak bu özelliklerin hiçbiri tam olarak paradigma olarak değiştirilmemiştir.

En önemli özellik anahtar sözcüğün dynamic kullanıma sunulmasıydı. C# 4.0 sürümünde dynamic anahtar sözcüğü, derleme zamanındaki yazma işlemini üst düzeyde değiştirme yeteneği ile tanıtıldı. dinamik anahtar sözcüğünü kullanarak JavaScript gibi dinamik olarak yazılan dillere benzer yapılar oluşturabilirsiniz. Bir dynamic x = "a string" oluşturun ve ardından buna altı ekleyin, bundan sonra ne olacağını belirlemek çalışma zamanına kalır.

Dinamik bağlama, hata potansiyeli sunar ancak aynı zamanda dil içinde büyük güç sağlar.

C# sürüm 3.0

Kasım 2007'de yayımlandı

C# sürüm 3.0, Visual Studio 2008 ile birlikte 2007'nin sonlarında geldi, ancak dil özelliklerinin tam teknesi aslında .NET Framework sürüm 3.5 ile gelecekti. Bu sürüm, C# büyümesinde önemli bir değişiklik olduğunu işaret etti. C#'i gerçekten genişletilebilir bir programlama dili olarak kurdu. Şimdi bu sürümdeki bazı önemli özelliklere göz atalım:

Geçmişe bakıldığında, bu özelliklerin çoğu hem kaçınılmaz hem de ayrılmaz görünüyor. Hepsi stratejik olarak birbirine uyuyor. Bu C# sürümünün en iyi özelliği, DilLe Tümleşik Sorgu (LINQ) olarak da bilinen sorgu ifadesiydi.

Daha ayrıntılı bir görünüm, LINQ'in oluşturulduğu temel olarak ifade ağaçlarını, lambda ifadelerini ve anonim türleri inceler. Ancak her iki durumda da C# 3.0 devrim niteliğinde bir kavram sundu. C# 3.0, C# dilini karma Nesne Odaklı / İşlevsel bir dile dönüştürmenin temelini oluşturmayı başlattı.

Özel olarak, artık koleksiyonlar üzerinde işlem gerçekleştirmek için SQL stili, bildirim temelli sorgular yazabilirsiniz. Tamsayı listesinin ortalamasını hesaplamak için bir döngü yazmak for yerine, bunu gibi basit bir şekilde list.Average()yapabilirsiniz. Sorgu ifadelerinin ve uzantı yöntemlerinin birleşimi, tamsayıların listesini çok daha akıllı hale getirdi.

C# sürüm 2.0

Kasım 2005'te yayımlandı

Şimdi 2005'te yayınlanan C# 2.0'ın bazı önemli özelliklerine ve Visual Studio 2005'e göz atalım:

Diğer C# 2.0 özellikleri, mevcut özelliklere özellikler ekledi:

  • Getter ve setter için ayrı erişilebilirlik
  • Yöntem grubu dönüşümleri (delegeler)
  • Statik sınıflar
  • Temsilci çıkarımı

C# genel bir Nesne Odaklı (OO) dili olarak başlarken, C# sürüm 2.0 bunu aceleyle değiştirdi. Genel türler ile türler ve yöntemler, tür güvenliğini korurken rastgele bir tür üzerinde çalışabilir. Örneğin, bir List<T>'e sahip olduğunuzda, List<string> veya List<int>'ye sahip olabilir ve bu metinler veya tamsayılar üzerinde yineleme yaparken tür güvenli işlemler gerçekleştirebilirsiniz. Genel değerleri kullanmak, her işlem için ListInt türünden türetilen bir ArrayList türü oluşturmaktan veya Object ile tür dönüştürmekten daha iyidir.

C# sürüm 2.0 yineleyiciler getirdi. Bunu kısaca ifade etmek gerekirse, yineleyiciler, bir List döngüsü ile foreach (veya diğer Sayılabilir türler) içindeki tüm öğeleri incelemenize olanak tanır. Dilin birinci sınıf bir parçası olarak yineleyicilere sahip olmak, dilin okunabilirliğini ve insanların kod hakkında mantık yürütme becerisini önemli ölçüde geliştirdi.

C# sürüm 1.2

Nisan 2003'te yayımlandı

C# sürüm 1.2, Visual Studio .NET 2003 ile birlikte gönderildi. Dille ilgili birkaç küçük geliştirme içeriyordu. En dikkat çekici olan, bu sürümden itibaren, foreach adlı bir döngüde, Dispose üzerinde IEnumerator çağrıldığında ve bu IEnumeratorIDisposable uygulandığında oluşturulan koddur.

C# sürüm 1.0

Ocak 2002'de yayımlandı

Geri dönüp baktığınızda, Visual Studio .NET 2002 ile yayınlanan C# sürüm 1.0, Java gibi görünüyordu. ECMA için belirtilen tasarım hedeflerinin bir parçası olarak, "basit, modern, genel amaçlı nesne odaklı bir dil" olmayı hedefliyordu. O dönemde, Java gibi görünmesi bu erken tasarım hedeflerine ulaşıldığı anlamına geliyordu.

Şimdi C# 1.0'a geri dönüp baktığınızda, başınız dönebilir. Yerleşik asenkron özelliklerden ve alışkın olduğunuz genellikler etrafındaki bazı zarif işlevlerden yoksundu. Aslına bakılırsa, genel türler tamamen eksikti. ** Ya LINQ? Henüz mevcut değil. Bu eklemelerin çıkması birkaç yıl sürer.

C# sürüm 1.0, bugünle karşılaştırıldığında özelliklerden arındırılmış görünüyordu. Kendinizi uzun kod yazarken bulursunuz. Ama yine de, bir yerden başla. C# sürüm 1.0, Windows platformundaki Java uygun bir alternatifti.

C# 1.0'ın başlıca özellikleri şunlardır:

Makaleilk olarak NDepend blog'da yayımlandı, Erik Dietrich ve Patrick Smacchia'nın izniyle.