İçeriğe atla

C♯

C#
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 (24 yıl önce) (2000)
TasarımcıMicrosoft
GeliştiriciMicrosoft
Kararlı sürüm10.0 (8 Kasım 2021 (2 yıl önce) (2021-11-08)[1][2])
Önizleme sürümü11.0 (22 Şubat 2022 (2 yıl önce) (2022-02-22)[3][4])
Önemli uygulamalarıVisual C#, .NET Framework, Mono, DotGNU
EtkilendikleriC++, Java
EtkiledikleriD, Dart, Swift, Java
Uygulama diliC#
PlatformuCross-platform
LisansCLR is proprietary, GPLv3, MIT/X11, LGPLv2, GPL
Olağan dosya uzantıları.cs, .csx
Web sitesihttps://learn.microsoft.com/tr-tr/dotnet/csharp/
AilesiC
C#, yaygın bir programlama dilidir.

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like (C benzeri) bir deneyim sunar.

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.[]

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.[]

Programın çalışması istenen bilgisayarlarda Framework kurulu olması gerekmektedir. (Windows 7 ve Windows Vista'da .NET Framework kuruludur)[][9]

Tasarım hedefleri

ECMA 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

// 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

using 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

Sü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
.NET Framework 3.5

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

  • 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.[]

Platform

  • .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

  • 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.[]

Ayrıca bakınız

Kaynakça

  1. ^ "Welcome to C# 10". 8 Kasım 2021 tarihinde kaynağından arşivlendi. 
  2. ^ "C# 10'daki yenilikler". 10 Ekim 2022 tarihinde kaynağından arşivlendi. 
  3. ^ "Early peek at C# 11 features". 22 Şubat 2022 tarihinde kaynağından arşivlendi. 
  4. ^ "C# 11'deki yenilikler". 10 Ekim 2022 tarihinde kaynağından arşivlendi. 
  5. ^ "Standard ECMA-334". 2 Mayıs 2020. 15 Nisan 2003 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mayıs 2020. 
  6. ^ "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. 
  7. ^ a b "The A-Z of Programming Languages: C#, Computerworld". 2 Mayıs 2020. Erişim tarihi: 2 Mayıs 2020. []
  8. ^ "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. 
  9. ^ ".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. 
  10. ^ "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. 
  11. ^ "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. 
  12. ^ 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. 
  13. ^ "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

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">BASIC</span> programlamaya yeni başlayanlar için kullanımı kolay anlaşılır bir programlama dili

BASIC 1964'te John George Kemeny ve Thomas Eugene Kurtz tarafından New Hampshire, ABD'de icat edilmiş, günümüzde de çeşitli türevleri kullanılmakta olan yüksek düzey bir programlama dili. Farklı türevleri birçok işletim sisteminin parçası olarak sunulmuştur.

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">.NET Framework</span> Yazılım

.NET Framework, Microsoft tarafından geliştirilen, açık İnternet protokolleri ve standartları üzerine kurulmuş bir "uygulama" geliştirme platformu. Daha önce Sun Microsystems tarafından geliştirilmiş olan Java platformuna önemli benzerlikler göstermektedir.

<span class="mw-page-title-main">Merhaba dünya programı</span> Geleneksel acemi bilgisayar programı

Merhaba dünya programı, görsel bir arayüz veya komut satırında "Merhaba dünya!" yazdıran bilgisayar programıdır. Bunun amacı, yeni öğrenilen programlama dilinde basit bir yazı yazmak ve programlama mantığını anlatmaktır.

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.

Bilgi işlem platformu, bir uygulama yazılımı çalıştırmak için donanım mimarisi ve bir yazılım çerçevesi, yazılım, çeşitli bazı kombinasyon veya sıralamalarını içermektedir. Tipik platformlarda bir bilgisayar mimari, işletim sistemi, programlama dilleri ve ilgili kullanıcı arabirimi içerir.

<span class="mw-page-title-main">Yazılım motoru</span> bilgisayar programının merkezi kısmı

Yazılım motoru, bilgisayar biliminde bir yazılımın altyapısı, temeli anlamına gelir. Yazılım motorları programı çalıştırabilmek için de kullanılmaktadır. Bu yazılımlar diğer programlardan farklıdır. Bir programın içerisinde çalışırlar veya bir bütün oluştururlar. Yazılım motorları bir tarayıcının içerisinde JavaScript motoru veya bir oyun motoru gibi çeşitli türlere sahiptirler. Web tarayıcısı içerisinde de JavaScript, AJAX gibi dillerde yazılmış eklentilerin çalışmasını sağlarlar.

<span class="mw-page-title-main">MonoDevelop</span>

MonoDevelop Linux, OS X ve Windows işletim sistemleri için geliştirilmiş bir açık kaynak tümleşik geliştirme ortamıdır. .NET framework ile Windows uygulamaları geliştirenlerin, alternatif olarak Mono kullanarak geliştirme yapmalarına olanak tanımaktadır. Linux ve Mac OS X için .NET teknolojilerini kullanma olanağı sunar.

<span class="mw-page-title-main">Mono (yazılım)</span>

Mono, Microsoft'un sponsorluğuyla, C# derleyicisi ve Ortak Dil Çalışma Platformu için ECMA standartları temel alınarak yapılmış açık kaynaklı bir .NET Framework uyarlamasıdır.

.NET Compact Framework .NET Framework'ün bir versiyonudur. Kişisel dijital yardımcılar (PDA'lar), cep telefonları, fabrika denetleyicileri, alıcı kutuları gibi kaynak kısıtlı mobil ve gömülü cihazlarda çalışacak şekilde tasarlanmıştır. .NET Compact Framework, .NET Framework ile aynı sınıf kitaplıklarından bazılarını ve ayrıca .NET Compact Framework denetimleri gibi mobil aygıtlar için özel olarak tasarlanmış birkaç kitaplığı kullanır. Ancak, kitaplıklar, .NET Framework'ün tam kopyaları değildir.

Windows Runtime, 2012 yılında ilk olarak Windows 8 ve Windows Server 2012'de tanıtılan platform tabanlı bir uygulama mimarisidir. WinRT, C++/WinRT, C ++/CX, JavaScript-TypeScript, yönetilen kod dilleri C Sharp ve Visual Basic .NET (VB.NET) 'in geliştirilmesini destekler. WinRT uygulamaları, hem x86 hem de ARM mimarisini doğal olarak destekler ve daha fazla güvenlik ve kararlılık sağlamak için sandbox ortamında çalışabilir. WinRT bileşenleri, yerel, yönetilen ve betik dilleri dahil olmak üzere birden fazla dil ve API arasında birlikte çalışabilirlikle tasarlanmıştır.

<span class="mw-page-title-main">Xamarin</span>

Xamarin, Mayıs 2011'de Mono, Xamarin.Android ve Xamarin.iOS'u yaratan mühendisler tarafından kurulan ve Microsoft'un sahip olduğu San Francisco merkezli bir yazılım şirketidir. Ortak Dil Altyapısı (CLI) ve Ortak Dil Özellikleri'nin platform uygulamalarıdır.

IronPython, Python programlama dilinin .NET Framework ve Mono'yu hedefleyen bir gerçeklemesidir. Proje Jim Hugunin tarafından başlatılmış, Hugunin 5 Eylül 2006'da yayınlanan 1.0 sürümüne kadar aktif olarak katkıda bulunmuştur. IronPython 2.0 10 Aralık 2008'de piyasaya sürüldü. 1.0 sürümünden sonra, 2.7 Beta 1 sürümüne kadar Microsoft'ta küçük bir ekip tarafından geliştirildi. Hugunin'in Google'da çalışmaya başlamasının ardından Microsoft, IronPython'u geliştirmeyi 2010 yılının sonlarında sonlandırdı. Proje şu anda GitHub'da bir grup gönüllü tarafından yürütülmektedir. Ücretsiz ve açık kaynaklı bir yazılımdır ve Microsoft Visual Studio IDE için ücretsiz ve açık kaynaklı bir uzantı olan Visual Studio için Python Tools (PTVS) ile uygulanabilir.

cmd.exe Windows komut satırı uygulaması

cmd.exe, Microsoft Windows, Windows NT, Windows CE, OS/2, EComStation ve ReactOS'un varsayılan Komut satırı uygulamasıdır. Uygulama çeşitli işletim sistemlerinde farklılık gösterebilir ancak kullanımı ve komutları hemen hemen aynıdır.

Microsoft Windows uygulama programlamasında, OLE Otomasyonu, Microsoft tarafından oluşturulan süreçler arası bir iletişim mekanizmasıdır. Başlangıçta Visual Basic olan komut dosyası dilleri tarafından kullanılması amaçlanan Bileşen Nesne Modeli'nin (COM) bir alt kümesine dayanmaktadır, ancak şimdi Windows'ta birkaç dil tarafından kullanılmaktadır. IDispatch arabirimini uygulamak için tüm otomasyon nesneleri gereklidir. Otomasyon denetleyicileri adı verilen uygulamaların, diğer uygulamalar tarafından dışa aktarılan paylaşılan otomasyon nesnelerine erişebildiği ve bunları değiştirebildiği bir altyapı sağlamaktadır. Uygulamaların birbirini kontrol etmesi için daha eski bir mekanizma olan Dinamik Veri Değişimi'nin (DDE) yerini almaktadır. DDE'de olduğu gibi, OLE Otomasyonunda otomasyon denetleyicisi "istemci"dir ve otomasyon nesnelerini dışa aktaran uygulama "sunucu"dur.

<span class="mw-page-title-main">Microsoft Visual C++</span>

Microsoft Visual C++, Microsoft'un C, C++ ve C++/CX programlama dilleri için bir derleyicidir.

Common Language Infrastructure veya kısaca CLI, programlama dili ve platformdan bağımsız bir şekilde uygulama geliştirme ve yürütmeyi mümkün kılan sistemleri belirleyen uluslararası bir teknik normdur. Standart, Uluslararası Standardizasyon Örgütü tarafından ISO/IEC 23271 numarası altında ve Ecma International tarafından ECMA-335 adı altında sürdürülmektedir. Mevcut versiyon, Haziran 2012'den itibaren 6 numaralı versiyondur.

Common Type System (CTS), Microsoft'un .NET Framework'te veri tipi tanımlarının ve bunların belirli değerlerinin bilgisayar belleğinde nasıl temsil edildiğini belirten bir standarttır. Farklı programlama dillerinde yazılan programların kolayca bilgi paylaşmasına olanak sağlamak amaçlanır. Programlama dillerinde kullanıldığı şekliyle bir veri tipi, bir değer kümesinin tanımı ve bu değerler üzerinde izin verilen işlemler olarak tanımlanabilir.