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 PascalDelphi 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)

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();
    }
}

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;
            default:
                cevap = 0;
                break;
        }
        Console.WriteLine(sayi1.ToString() + " " + islem + " " + sayi2.ToString() + " = " + cevap.ToString());
        Console.ReadLine();
    }
}

Eğitim İçeriği & Modüller & Sınavlar

C# İle Geleceğinizi İnşaa Edebilirsiniz…

Modül Eğitim İçeriği
1. Modül Programa Giriş
2. Modül Program Ayarlamaları
3. Modül Kodlamaya Giriş
4. Modül Değişkenler
5. Modül Operatörler
6. Modül Koşul İfadeleri
7. Modül Döngüler
8. Modül Dizi – Array
Ara Sınav – 1 Deneme Sınavı
9. Modül Metodlar
10. Modül Sınıflar
11. Modül Hata Yönetimi
Ara Sınav – 2 Deneme Sınavı
12. Modül Ek Bilgiler
13. Modül Consol Projeleri
14. Modül Form İşlemleri
15. Modül Örnek Proje Uygulaması
16. Modül Örnek Proje Uygulaması
C# Visual Studio