C#, Microsoft tarafından geliştirilen ve .NET framework'ü üzerinde çalışan, güçlü ve esnek bir programlama dilidir. 2000 yılında Anders Hejlsberg tarafından oluşturulan C#, özellikle Windows tabanlı uygulamalarda yaygın olarak kullanılmaktadır. Bu makalede, C# dilinin temel kavramlarına detaylı bir şekilde değinilecektir.
C#’ın Tarihçesi
C#, Java ve C++ gibi dillerin güçlü yönlerini birleştirerek, modern yazılım geliştirme ihtiyaçlarını karşılamak üzere tasarlanmıştır. Microsoft, C#’ı geliştirirken hem basit hem de güçlü olmasına özen göstermiştir. Dil, özellikle .NET framework ile birlikte kullanıldığında yüksek performanslı ve güvenilir uygulamalar geliştirilmesine olanak tanır.
1. Değişkenler ve Veri Tipleri
C# dilinde değişkenler, verileri depolamak için kullanılan temel yapı taşlarıdır. Bir değişkenin veri tipi, hangi türde veriyi saklayacağını belirler.
Temel Veri Tipleri
- int: Tam sayı verileri için kullanılır. Örnek: int sayi = 10;
- double: Ondalıklı sayılar için kullanılır. Örnek: double pi = 3.14;
- char: Tek bir karakteri saklar. Örnek: char harf = 'A';
- string: Karakter dizilerini saklar. Örnek: string isim = "Ahmet";
- bool: Mantıksal değerleri saklar (true veya false). Örnek: bool durum = true;
Operatörler
Operatörler, değişkenler ve değerler üzerinde işlem yapmak için kullanılır. C# dilinde çeşitli operatörler bulunmaktadır:Matematiksel Operatörler
- + : Toplama
- - : Çıkarma
- * : Çarpma
- / : Bölme
- % : Mod alma (kalan)
Karşılaştırma Operatörleri
- == : Eşit mi
- != : Eşit değil mi
- > : Büyüktür
- < : Küçüktür
- >= : Büyük eşittir
- <= : Küçük eşittir
Mantıksal Operatörler
- && : Ve
- || : Veya
- ! : Değil
2.Kontrol Yapıları
C# dilinde, kod akışını kontrol etmek için çeşitli yapılandırmalar kullanılır. Bu yapılar, belirli koşullar altında farklı kod bloklarının çalışmasını sağlar.If-Else Yapısı
C#:
if (sayi > 0)
{
Console.WriteLine("Sayı pozitiftir.");
}
else
{
Console.WriteLine("Sayı negatiftir veya sıfırdır.");
}
Switch-Case Yapısı
C#:
switch (gun)
{
case 1:
Console.WriteLine("Pazartesi");
break;
case 2:
Console.WriteLine("Salı");
break;
default:
Console.WriteLine("Geçersiz gün");
break;
}
Döngüler
For Döngüsü: Belirli bir sayıda tekrarlamak için kullanılır.
C#:
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
While Döngüsü: Belirli bir koşul doğru olduğu sürece tekrarlanır.
C#:
int j = 0;
while (j < 10)
{
Console.WriteLine(j);
j++;
}
Do-While Döngüsü: Koşul doğru olmasa bile döngü en az bir kez çalışır.
C#:
int k = 0;
do
{
Console.WriteLine(k);
k++;
} while (k < 10);
3.Fonksiyonlar
Fonksiyonlar, belirli bir görevi gerçekleştiren kod bloklarıdır. C# dilinde fonksiyonlar, tekrar kullanılabilirlik ve kodun daha okunabilir hale gelmesi için kullanılır.
Fonksiyon Tanımlama ve Çağırma
C#:
public int Topla(int a, int b)
{
return a + b;
}
int sonuc = Topla(5, 3);
Console.WriteLine(sonuc);
Nesne Yönelimli Programlama (OOP)
C#, nesne yönelimli bir programlama dilidir. OOP, yazılım geliştirme sürecinde kodun daha modüler, esnek ve yeniden kullanılabilir olmasını sağlar.Sınıflar ve Nesneler
Sınıflar, nesnelerin özelliklerini ve davranışlarını tanımlar. Bir sınıf, değişkenler (özellikler) ve fonksiyonlar (metotlar) içerir.
C#:
public class Araba
{
public string marka;
public int modelYili;
public void BilgiGoster()
{
Console.WriteLine("Marka: " + marka + ", Model Yılı: " + modelYili);
}
}
Araba araba1 = new Araba();
araba1.marka = "Toyota";
araba1.modelYili = 2020;
araba1.BilgiGoster();
Kalıtım
Kalıtım, bir sınıfın başka bir sınıftan özelliklerini ve metotlarını miras almasını sağlar. Bu, kodun yeniden kullanılabilirliğini artırır ve yazılım geliştirme sürecini hızlandırır.
C#:
public class Arac
{
public string renk;
public int hiz;
public void HareketEt()
{
Console.WriteLine("Araç hareket ediyor.");
}
}
public class Araba : Arac
{
public string marka;
}
Araba araba2 = new Araba();
araba2.renk = "Kırmızı";
araba2.marka = "Ford";
araba2.HareketEt();
Polimorfizm
Polimorfizm, nesnelerin farklı biçimlerde kullanılabilmesini sağlar. Bu, özellikle kalıtım ve arayüzlerle birlikte kullanıldığında oldukça güçlü bir özelliktir.
C#:
public class Hayvan
{
public virtual void SesCikar()
{
Console.WriteLine("Hayvan sesi çıkarıyor.");
}
}
public class Kopek : Hayvan
{
public override void SesCikar()
{
Console.WriteLine("Hav hav!");
}
}
Hayvan hayvan = new Hayvan();
hayvan.SesCikar();
Hayvan kopek = new Kopek();
kopek.SesCikar();
Arayüzler
Arayüzler, bir sınıfın hangi metotları içermesi gerektiğini belirleyen yapılar olarak tanımlanabilir. Arayüzler, bir sınıfın belirli bir işlevselliği yerine getirmesi gerektiğini belirtir.
C#:
public interface ICalisan
{
void Calis();
}
public class Isci : ICalisan
{
public void Calis()
{
Console.WriteLine("İşçi çalışıyor.");
}
}
ICalisan isci = new Isci();
isci.Calis();
Delegeler ve Olaylar
Delegeler, metotları temsil eden yapılar olarak tanımlanabilir. Delegeler, özellikle olay tabanlı programlamada kullanılır.Delegeler
C#:
public delegate void SelamVerDelegate(string mesaj);
public class Program
{
public static void Main(string[] args)
{
SelamVerDelegate selamVer = SelamVerMetodu;
selamVer("Merhaba!");
}
public static void SelamVerMetodu(string mesaj)
{
Console.WriteLine(mesaj);
}
}
Olaylar
C#:
public class Alarm
{
public event Action AlarmCaldi;
public void Calistir()
{
Console.WriteLine("Alarm çalıyor!");
AlarmCaldi?.Invoke();
}
}
public class Program
{
public static void Main(string[] args)
{
Alarm alarm = new Alarm();
alarm.AlarmCaldi += AlarmCaldiMetodu;
alarm.Calistir();
}
public static void AlarmCaldiMetodu()
{
Console.WriteLine("Alarm çaldı ve olay tetiklendi!");
}
}
C#, modern yazılım geliştirme ihtiyaçlarını karşılamak için güçlü, esnek ve kapsamlı bir programlama dilidir. Bu makalede, C# dilinin temel kavramlarına detaylı bir şekilde değinilmiştir. Değişkenler, operatörler, kontrol yapıları, fonksiyonlar, nesne yönelimli programlama, arayüzler, delegeler ve olaylar gibi temel konular ele alınmıştır. C# dilini öğrenmek, yazılım geliştiriciler için geniş bir yelpazede projeler geliştirmelerine olanak tanır ve kariyerlerini ilerletmelerine yardımcı olur.
Makalemizi okuduğunuz için teşekkür ederiz. C# dilinin temel kavramlarını anlamak ve bu bilgileri projelerinizde kullanmak, yazılım geliştirme yolculuğunuzda büyük bir adım olacaktır. Umarız bu rehber, C# öğrenme sürecinizde size faydalı olmuştur.
Görüşlerinizi paylaşmayı ve makalemizi beğenmeyi unutmayın. İyi kodlamalar!