Teknik sınırlamalar nedeniyle, başlığın istenen tipografisi doğru şekilde gösterilemedi.
VS# | ||
İlk versiyonun tarihi | 2001 | |
---|---|---|
Paradigma | Yapılandırılmış , zorunlu , nesne yönelimli | |
Yazar | Microsoft | |
Son sürüm | 9.0 (4 Eylül 2020) | |
Geliştirme sürümü | 8.0 | |
Yazıyor | Statik , güçlü , aday | |
Lehçeler | 1.0, 1.1, 1.2, 2.0 (ECMA), 3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 7.1, 7.2, 7.3, 8.0, 9.0 | |
Tarafından etkilenmiş | C ++ , Java | |
Etkilenen | Swift , Vala , F # , Kotlin , TypeScript | |
Uygulamalar | Microsoft .NET , Mono , DotGNU | |
İşletim sistemi | Çapraz platform | |
İnternet sitesi | docs.microsoft.com/en-us/dotnet/csharp ve docs.microsoft.com/de-de/dotnet/csharp | |
Dosya uzantısı | .cs | |
C # ( C keskin [ ler i ː . Σ ɑ ː p ] içinde İngiliz İngilizcesi ) bir olan dil arasında nesne yönelimli programlama , tarafından pazarlanan Microsoft 2002 yılından bu yana ve platform üzerinde genişletmek için tasarlanan Microsoft .NET .
C ++ 'dan türetilmiştir ve genel sözdizimini ve kavramları aldığı Java'ya çok yakındır , operatör aşırı yükleme , indeksleyiciler ve temsilciler gibi kavramlar ekler . Özellikle ASP.NET platformunda web uygulamaları geliştirmek için kullanılır .
C #, Java gibi C ve C ++ dillerinden türetilmiş , güçlü bir şekilde yazılmış , nesne yönelimli bir programlama dilidir . Geliştirmek için kullanılan web uygulamaları , hem de masaüstü uygulamaları , web hizmetleri , komutları, widget'lar veya sınıf kitaplıkları . C # 'da uygulama, Java'da yapıldığı gibi sınıflardan birinin Main yöntemine sahip olduğu bir sınıflar paketidir .
C # ile geliştirilmesi amaçlanmaktadır .NET platformu , başarılı olmak için Microsoft tarafından oluşturulan bir teknoloji yığını COM .
C # 'teki yürütülebilir dosyalar derlemelere, ad alanlarına, sınıflara ve sınıf üyelerine bölünmüştür. Derleme, bir program (çalıştırılabilir) veya sınıf kitaplığı (dll) olabilen derlenmiş formdur. Bir derleme, MSIL'deki çalıştırılabilir kodu ve sembolleri içerir. MSIL kodu , .NET platformunun tam zamanında işlevi tarafından çalışma zamanında makine diline çevrilir .
C #, .NET platformunda geliştirme için tasarlanmıştır. Bu teknolojik yığının kalbi , aşağıdakilerden oluşan .NET çerçevesidir :
.NET platformunun diğer bir ürünü, genellikle C # ile programlama için kullanılan bir araç olan Visual Studio .NET geliştirme ortamıdır .
C #, C ++ 'dan türetilmiş bir dildir , güvenli yazmanın yanı sıra nesne yönelimli dillerin kapsülleme , kalıtım ve çok biçimlilik olasılıklarını sağlar . C # 'da tüm türler nesnelerdir . Dil, bir çöp toplayıcıya ve bir istisna işleme sistemine sahiptir .
Güvenli tipleme, özellikle aşağıdaki işlemlerin reddedildiği anlamına gelir: başlatılmamış bir değişkenin kullanılması, bir dizinin sınırlarının ötesine erişme girişimi , sonuçları tahmin edilemeyen tür dönüşümleri , işlem aritmetiği sırasında sınırların aşılması .
Java olasılıklarının çoğu C # 'da bulunur ve C # ile yazılmış kod ile Java'daki eşdeğer kod arasında güçlü bir benzerlik vardır.
C # 'da değişkenler bir başvuru türünde veya bir değer türünde olabilir . Değer türleri, ilkel türler, numaralandırmalar, yapı ve null yapılabilir türlerdir . Başvuru türleri; sınıflar, arabirimler, diziler ve temsilcilerdir .
İlkel türlerİlkel türler sbyte, short, int, long, byte, ushort, uint, ulong, char, float, double, decimal ve bool'dur.
sınıfC # dilinin en temel yapıları sınıflardır . Bunlar sabitler, alanlar, özellikler, dizinleyiciler, yöntemler, olaylar, operatörler, kurucular, yıkıcılar veya alt sınıflar içerebilir. Temel sınıflar dizge ve nesnedir.
yapıYapılar sınıflara benzer, ancak değer türleridir ve miras alınamazlar .
temsilciTemsilci, belirli parametrelere sahip bir yönteme referanstır. Temsilciler, değişkenlere yöntemler atamak ve bunları parametre olarak iletmek için kullanılır.
SıralamaNumaralandırılmış tür, bir dizi sabiti olan bir değer türüdür. Numaralandırılmış her türün temel bir türü vardır: sabitlerin değerlerine göre belirlenen ilkel bir tür.
boş değer atanabilir türNullable'lar, ek olarak null olabilen ilkel türlerdir . Her ilkel tip T'nin ilişkili bir boş değer atanabilir T? Tipi vardır. Örneğin, int türünde bir değişken? int veya null içerebilir.
C # 1.0'daki anahtar kelimeler şunlardır:
abstract class event if new readonly as const explicit implicit null ref base continue extern in object return bool decimal false int operator sbyte break default finally interface out sealed byte delegate fixed internal override short case do float is params sizeof catch double for lock private stackalloc char else foreach long protected static checked enum goto namespace public string struct throw typeof unchecked using volatile switch true uint unsafe virtual while this try ulong ushort voidC # 2.0 ile 6.0 arasında eklenen anahtar sözcükler:
add dynamic join select alias equals let set ascending from nameof value async get on var await global orderby where by group partial when descending into remove yieldDilde C / C ++ 'dan bir dizi değişiklik vardır; aşağıdaki hususlara özellikle dikkat edilecektir:
C # Java'ya benzese de, bazı önemli farklılıklar vardır, örneğin:
Eylül 2002'de .NET platformu ve C # halka tanıtıldı. C # bu platformun fiili dili haline geldi, ayrıca .NET platformunun bir parçasını uygulamak için de kullanıldı.
versiyonlarYıl | Versiyon | Kütüphane | Ana değişiklik |
---|---|---|---|
2002 | 1.0 | .NET framework 1.0 ve 1.1 | |
2005 | 2.0 | .NET framework 2.0 | C # ve çerçeveye genellik eklendi |
2008 | 3.0 | .NET framework 3.5 | LINQ (Dil ile entegre sorgular) |
2010 | 4.0 | .NET framework 4.0 | dinamik türler |
2012 | 5.0 | .NET framework 4.5 | zaman uyumsuz yöntemler |
2015 | 6.0 | .NET framework 4.6 | linux sürümü |
2016 | 7.0 | .NET çerçevesi> = 4.5 | Tuples, yerel işlevler |
2019 | 8.0 | .NET standardı> = 2.1 ve .NET Core> = 3.0 | ReadOnly Üye, Birleştirme Atama Operatörü |
Microsoft ,Ekim 2005, uzun bir beta testi döneminden sonra, .NET kitaplığının 2.0 sürümü, hemen hemen tüm ilişkili araçların yeni bir sürümü ile birlikte. C # kuralın bir istisnası değildir ve bu nedenle aşağıdaki eklemelerle 2.0 sürümünde yayınlanmıştır:
Referans olarak, 2.0 sürümünde tanıtılan yeni özelliklerin tüm özellikleri dış bağlantılarda mevcuttur .
Delphi'nin babası Anders Hejlsberg , bu röportajda (in) C #, Java ve C ++ 'da jeneriklerin uygulanması hakkında konuştu .
Boş değer atanabilir türlerin işlevselliği, sürüm 2.0'ın genel olarak yayınlanmasından yalnızca birkaç hafta önce düzeltildi, çünkü değişkenin değeri gerçekten sıfırsa, bu değişkenin geleneksel anlamda boş olmadığı ortaya çıktı, yani, boş bir referans değildir. Bu nedenle, sıfır değerli bir ilkel türü bir nesneye dönüştürmek, sıfır değerine sıfır olmayan bir referansla sonuçlandı. Bu sorunu düzeltmek için, CLR çekirdeğini düzeltmek ve .NET 2.0 aralığındaki (Visual Studio 2005, SQL Server 2005, C # ve VB.NET) tüm ürünler üzerinde çok sayıda kontrol ve düzeltme yapmak gerekliydi.
C # 3.0, PDC 2005'te sunuldu. Son sürüm şu tarihten beri mevcuttur: 19 Kasım 2007Microsoft sitesinden indirmek için (tr) . Başlıca yeni özellikler aşağıdaki gibidir:
C # 3.0 ve LINQ'ya genel bir bakış .NET Framework Geliştirme Merkezi sayfasında bulunabilir .
Yapılan iyileştirmeler tamamen sözdizimsel olduğundan veya derleme zamanında telafi edilen kısayollardan oluştuğundan, C # 3.0'da derlenen kod 2.0 ile tamamen uyumludur. Ancak, sürüm 3.5 kitaplıklarında (LINQ, vb.) Sunulan yeni özellikler, C # 'ın önceki sürümleriyle kullanılamaz.
Bu sürüm, Windows XP veya üstünü ( Vista veya Windows 7 ) gerektirir. Windows 2000 için mevcut değildir .
Versiyon 4 dil birkaç yeni özellik sunar:
.NET 4.0 framework serbest bırakıldı12 Nisan 2010, Visual Studio 2010 ile birlikte . Diğerlerinin yanı sıra şunları sunar:
Sürüm 5 Dil basitçe anahtar kelimeler ekleyerek asenkron programlarını programlamak için kullanılan asyncve await.
Döngüdeki kapanışların davranışı foreachdeğiştirildi. Kapanmaforeach problemlerinden kaçınmak için artık bir döngüye yerel bir değişken eklemek gerekli değildir .
Ayrıca, bir özelliği çağıran yöntemin adını bilmeye izin veren arayanla ilgili bilgilere de dikkat edin.
C # 'ın altıncı sürümü, aşağıdakiler dahil çeşitli değişiklikler yapar:
Otomatik olarak uygulanan özellikler (veya otomatik özellikler), alanlara erişimi basitçe kapsayan özelliklerin bildirimini basitleştirmek için ilk olarak C # 3'te ortaya çıktı. Kodu daha kısa yapsalar da, bir dezavantajları vardır: bunları bildirim düzeyinde başlatmak mümkün değildir, mutlaka kurucuda yapılmalıdır. Ayrıca, otomatik özellikleri salt okunur hale getirmek mümkün değildir, çünkü onların mutatörleri (ayarlayıcıları) yoktur ve bu nedenle onlara bir değer atayamıyoruz.
C # 6, otomatik özelliklerin bildirim seviyesinde başlatılmasına izin vererek bu sorunu çözer.
C #, ECMA (ECMA-334) tarafından standartlaştırılmıştır .Aralık 2001ve ISO / IEC ( ISO / IEC 23270 ) tarafından 2003'te .
Değişimler Sürüm 2.0 ile standardize edilmiş ECMA içinde (ECMA-334)Haziran 2006ve ISO / IEC ( ISO / IEC 23270: 2006 ) tarafındanEylül 2006.
Microsoft, C # tarafından kullanılan bazı kitaplıkların kaynak kodunu Ekim 2007altında Microsoft Referans Kaynak Lisansı (MS-RSL).
ECMA 334 standardı ve ISO 23270, dilin adını Unicode karakteri 0043 (büyük harf C) ve ardından 0023 (#) karakteri olarak tanımlar . "C diyez" olarak telaffuz edilir ve "C diyez" olarak telaffuz edilir, "keskin" aslında müzik sembolünü belirtir symbol ama # bunun yerine çarpı ("hash") sunan bir bilgisayar klavyesinden kolay erişim için gereklidir.
"C #" adı, yazılı notanın bir noktalı ton ile artırılması gerektiğini belirten keskin bir işaretin bulunduğu müzik notasyonundan esinlenmiştir. Bu, C ++ dil adına benzer; burada "++", bir değişkenin değerlendirildikten sonra 1 artırılması gerektiğini belirtir. # Sembolü ayrıca dört "+" sembolden oluşan bir bitişik yapıya benziyor (ikiye iki ızgarada), bu da dilin C ++ 'nın bir artışı olduğu anlamına gelir.