C♯
C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like (C benzeri) bir deneyim sunar.
Paradigması | Yapısal (structured), Zorunlu (imperative), Nesne yönelimli (object-oriented), Olaya dayalı (event-driven), Fonksiyonel (functional), Genel (generic), Yansıtıcı (reflective), Eşzamanlı (concurrent) |
---|---|
İlk çıkışı | 2000 | )
Tasarımcı | Microsoft |
Geliştirici | Microsoft |
Kararlı sürüm | 10.0 (8 Kasım 2021[1][2]) | )
Önizleme sürümü | 11.0 (22 Şubat 2022[3][4]) | )
Önemli uygulamaları | Visual C#, .NET Framework, Mono, DotGNU |
Etkilendikleri | C++, Java |
Etkiledikleri | D, Dart, Swift, Java |
Uygulama dili | C# |
Platformu | Cross-platform |
Lisans | CLR is proprietary, GPLv3, MIT/X11, LGPLv2, GPL |
Olağan dosya uzantıları | .cs, .csx |
Web sitesi | https://learn.microsoft.com/tr-tr/dotnet/csharp/ |
Ailesi | C |
Microsoft tarafından geliştirilmiş olsa da ECMA ve ISO standartları altına alınmıştır.[5][6]
C programlama dilinde bir tam sayı değişkeni 1 artırmak için değişkenden sonra "++" eki kullanılır. C++ dilinin adı, C diliyle Nesne Yönelimli Programlama yapabilme olanağı (C with Classes) için eklentiler sağladığı için "C++" şeklindedir. Benzer şekilde C++ diline yeni eklentiler yapılarak ((C++)++) bir adım daha da ileriye götürülmüş ve tamamen nesneye yönelik tasarlanmış C# dilinin isimlendirilmesinde, + karakterlerinin birbirlerine yakınlaşmış hali ve bir melodi anahtarı olan C# Major kullanılmıştır.[7]
Bu dilin tasarlanmasına Pascal, Delphi derleyicileri ve J++ programlama dilinin tasarımlarıyla bilinen Anders Hejlsberg liderlik etmiştir.[7]
Birçok alanda Java'yı kendisine örnek alır ve C# da java gibi C ve C++ kod sözdizimine benzer bir kod yapısındadır. .NET kütüphanelerini kullanmak amacıyla yazılan programların çalıştığı bilgisayarlarda uyumlu bir kütüphanenin ve yorumlayıcının bulunması gereklidir. Bu, Microsoft'un .NET Framework'u olabileceği gibi ECMA standartlarına uygun herhangi bir kütüphane ve yorumlayıcı da olabilir. Yaygın diğer kütüphanelere örnek olarak Portable.Net ve Mono verilebilir.[kaynak belirtilmeli]
Nesne yönelimli programlama kavramının gelişmesine katkıda bulunan aktif programlama dillerinden biridir.[8]
C#, .NET orta seviyeli programlama dillerindendir. Yani hem makine diline hem de insan algısına eşit seviyededir. Buradaki orta ifadesi dilin gücünü değil makine dili ile günlük konuşma diline olan mesafesini göstermektedir. Örneğin; Visual Basic .NET (VB.NET) yüksek seviyeli bir dildir dersek bu, dilin insanların günlük yaşantılarında konuşma biçimine yakın şekilde yazıldığını ifade etmektedir. Dolayısıyla VB.NET, C#.NET'ten daha güçlü bir dildir diyemeyiz.[kaynak belirtilmeli]
Programın çalışması istenen bilgisayarlarda Framework kurulu olması gerekmektedir. (Windows 7 ve Windows Vista'da .NET Framework kuruludur)[kaynak belirtilmeli][9]
Tasarım hedefleri
değiştirECMA tarafından C# dilinin tasarım hedefleri şöyle sıralanır:[10]
- C#; basit, modern, genel-amaçlı, nesneye yönelik programlama dili olarak tasarlanmıştır.
- Çünkü yazılımın sağlamlığı, güvenirliği ve programcıların üretkenliği önemlidir. C# yazılım dili, güçlü tipleme kontrolü (strong type checking), dizin sınırlar kontrolü (array bounds checking), tanımlanmamış değişkenlerin kullanım tespiti, (source code portability) ve otomatik artık veri toplama (garbage collector) gibi özelliklerine sahiptir.
- Programcı portatifliği özellikle C ve C++ dilleri ile tecrübesi olanlar için çok önemlidir.
- Enternasyonal hale koymak için verilen destek çok önemlidir.
- C# Sunucu ve gömülü sistemler için tasarlanmıştır. Bununla birlikte C# programlama dili en basit işlevseli fonksiyondan işletim sistemini kullanan en teferruatlısına kadar kapsamaktadır.
- C# uygulamaları hafıza ve işlemci gereksinimleri ile tutumlu olmak üzere tasarlanmıştır. Buna rağmen C# programlama dili performans açısından C veya Assembly dili ile rekabet etmek için tasarlanmamıştır.
Merhaba Dünya
değiştir// Konsol uygulamaları yazılması için System isim uzayı eklenir.
// Bu sayede derleyici, System.dll'i kullanması gerektiğini bilir.
using System;
// Sınıf tanımlamasıdır.
class Program
{
// .NET çalışma zamanında ön tanımlı olarak Main() fonksiyonunu çalıştırır.
static void Main()
{
// Console sınıfı içerisindeki Writeline() fonksiyonu çalıştırılır
Console.WriteLine("Merhaba Dünya!");
// Kullanıcıdan herhangi bir tuşa basarak çıkması için bir tuş okunur.
Console.ReadKey();
}
}
Basit bir hesap makinesi örneği
değiştirusing System;
class Program
{
double sayi1, sayi2, cevap;
string islem;
static void Main(string[] args)
{
Console.Write("Lütfen ilk tam sayıyı giriniz: ");
sayi1 = Convert.ToDouble(Console.ReadLine());
Console.Write("Lütfen yapacağınız işlemi giriniz (+, -, /, *): ");
islem = Console.ReadLine();
Console.Write("Lütfen ikinci tam sayıyı giriniz: ");
sayi2 = Convert.ToDouble(Console.ReadLine());
switch (islem)
{
case "-":
cevap = sayi1 - sayi2;
break;
case "+":
cevap = sayi1 + sayi2;
break;
case "/":
cevap = sayi1 / sayi2;
break;
case "*":
cevap = sayi1 * sayi2;
break;
}
Console.WriteLine(sayi1.ToString() + " " + islem + " " + sayi2.ToString() + " = " + cevap.ToString());
Console.ReadLine();
}
}
Sürüm Geçmişi
değiştirSürüm | Yayın Tarihi | .Net Framework | Visual Studio |
---|---|---|---|
C# 1.0 | Ocak 2002 | .NET Framework 1.0 | Visual Studio .NET 2002 |
C# 1.1 C# 1.2 |
Nisan 2003 | .NET Framework 1.1 | Visual Studio .NET 2003 |
C# 2.0 | Kasım 2005 | .NET Framework 2.0 .NET Framework 3.0 |
Visual Studio 2005 Visual Studio 2008 |
C# 3.0 | Kasım 2007 | .NET Framework 2.0
.NET Framework 3.0 |
Visual Studio 2008 |
C# 4.0 | Nisan 2010 | .NET Framework 4 | Visual Studio 2010 |
C# 5.0 | Ağustos 2012 | .NET Framework 4.5 | Visual Studio 2012 Visual Studio 2013 |
C# 6.0 | Temmuz 2015 | .NET Framework 4.6 .NET Core 1.0 .NET Core 1.1 |
Visual Studio 2015 |
C# 7.0 | Mart 2017 | .NET Framework 4.7 | Visual Studio 2017 Sürüm 15.0 |
C# 7.1 | Ağustos 2017 | .NET Core 2.0 | Visual Studio 2017 Sürüm 15.3[11] |
C# 7.2 | Kasım 2017 | Visual Studio 2017 Sürüm 15.5[12] | |
C# 7.3 | Mayıs 2018 | .NET Core 2.1 .NET Core 2.2 .NET Framework 4.8 |
Visual Studio 2017 Sürüm 15.7[12] |
C# 8 | Eylül 2019 | .NET Core 3.0
.NET Core 3.1 |
Visual Studio 2019 Sürüm 16.3 10 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi. 10 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.[12] |
C# 9 | Kasım 2020 | .NET 5.0 | Visual Studio 2019 Sürüm 16.8 10 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi. |
C# 10 | Kasım 2021 | .NET 6.0
.NET 6.0.1 |
Visual Studio 2022 Sürüm 17.0 10 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi. |
C# 11 (önizleme) | Ağustos 2022 |
Performans
değiştir- C#, Sanal Makine'ye dayalı dillerden biridir, direkt yerleşik koda derlenen dillerden daha yavaştır.[13]
- Bellek yönetiminde bir atık toplayıcısına ihtiyaç duyuyor olması, sistem kaynaklarını C, C++ veya Rust gibi dillere göre daha fazla tükettiği anlamına gelir. Sistem kaynaklarının kullanımına bağlı performans düşüşü olabilir.[kaynak belirtilmeli]
Platform
değiştir- .NET Microsoft uygulama bonservisi Windows üzerinde geçerlidir. Fakat C# programlarını Windows, Linux veya macOS üzerinde yürüten başka uygulamalar da yer almaktadır.
Güvenlik
değiştir- C# sanal makineye dayalı bir dil olduğundan kaynak kodlarının korunması zordur. Kaynak kodları karıştırıp şifreleyen ek uygulamalar ile güvenlik düzeyi artırırsa da tam olarak koruma sağlanmaz.[kaynak belirtilmeli]
Ayrıca bakınız
değiştirKaynakça
değiştir- ^ "Welcome to C# 10". 8 Kasım 2021 tarihinde kaynağından arşivlendi.
- ^ "C# 10'daki yenilikler". 10 Ekim 2022 tarihinde kaynağından arşivlendi.
- ^ "Early peek at C# 11 features". 22 Şubat 2022 tarihinde kaynağından arşivlendi.
- ^ "C# 11'deki yenilikler". 10 Ekim 2022 tarihinde kaynağından arşivlendi.
- ^ "Standard ECMA-334". 2 Mayıs 2020. 15 Nisan 2003 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mayıs 2020.
- ^ "ISO - ISO/IEC 23270:2018". 2 Mayıs 2020. 12 Aralık 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mayıs 2020.
- ^ a b "The A-Z of Programming Languages: C#, Computerworld". 2 Mayıs 2020. Erişim tarihi: 2 Mayıs 2020.[ölü/kırık bağlantı]
- ^ "Top Programming Languages To Follow in 2020". 2 Mayıs 2020. 16 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mayıs 2020.
- ^ ".NET Framework version history - Wikipedia". 2 Mayıs 2020. 27 Aralık 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mayıs 2020.
- ^ "ECMA Specifications for C#" (PDF). 2 Mayıs 2020. 15 Mayıs 2020 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 2 Mayıs 2020.
- ^ "Visual Studio 2017 15.3 Release Notes". docs.microsoft.com. 27 Ağustos 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Ocak 2020.
- ^ a b c "Visual Studio 2017 15.9 Release Notes". docs.microsoft.com. 10 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Ocak 2020.
- ^ "Computer Language Benchmarks Game". 8 Eylül 2007. 1 Eylül 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Eylül 2007.
Dış bağlantılar
değiştir- CSharpNedir?Com 23 Ekim 2020 tarihinde Wayback Machine sitesinde arşivlendi. (Türkçe)
- Visual C# Developer Center 7 Eylül 2008 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
- C# Programming Guide 13 Mayıs 2008 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)