C# dilinde alanlar (fields), bir sınıf veya yapı içinde tanımlanan ve genellikle sınıfın durumunu (state) saklayan değişkenlerdir. Alanlar, sınıfın özellikleriyle (properties) karıştırılmamalıdır. Doğrudan veri saklamak için kullanılır ve genelde private erişim belirleyicisiyle tanımlanır.
Windows Form projelerinde, alanlar, bir formun veya sınıfın işlevselliğini destekleyen değişkenler olarak kullanılır. Bu yazıda, alanlar hakkında temel bilgiler, kullanım şekilleri ve örnekler yer almaktadır.
1. Alan Nedir?
- Alan (Field): Bir sınıf veya yapı içinde tanımlanan değişkenlerdir. Sınıfın genel durumu hakkında bilgi tutar.
- Özelliklerden farkı: Alanlar genellikle doğrudan veri saklar, özellikler ise alanların kontrollü bir şekilde erişimini sağlar.
Temel Tanım:
public class Araba
{
// Alan tanımı
private string marka;
// Alanlara erişim genellikle özelliklerle sağlanır
public string Marka
{
get { return marka; }
set { marka = value; }
}
}
2. Alanların Kullanımı
Windows Form’da bir sınıf veya form içinde alanlar genellikle şu durumlarda kullanılır:
- Formun Durumunu Tutma: Bir formun genel durumu hakkında bilgi tutar.
- Sınıf İçi İşlemleri Yönetme: Sınıfın işleyişini destekleyen değişkenler tanımlanır.
Örnek: Basit Alan Kullanımı
Formdaki bir butona basıldığında, bir sayacın artmasını sağlayan bir uygulama düşünelim.
Kod:
public partial class MainForm : Form
{
// Alan tanımı
private int sayac = 0;
public MainForm()
{
InitializeComponent();
}
private void btnSayacArttir_Click(object sender, EventArgs e)
{
// Alanı güncelle
sayac++;
lblSonuc.Text = $"Butona {sayac} kez tıklandı.";
}
}
- sayac: Bu alan, buton tıklama sayısını saklar.
- lblSonuc: Kullanıcıya tıklama sayısını göstermek için bir Label kontrolü.
3. Alanların Erişim Belirleyicileri
Alanlar, genellikle private erişim belirleyicisi ile tanımlanır. Böylece doğrudan dış sınıflardan erişilemez ve kontrol dışı manipülasyonlar önlenir.
Erişim Belirleyicilerle Alan Kullanımı
public class Ogrenci
{
// Private alan
private string ad;
// Alanlara erişim için özellikler kullanılır
public string Ad
{
get { return ad; }
set { ad = value; }
}
}
Kullanımı:
Ogrenci ogrenci = new Ogrenci();
ogrenci.Ad = "Ahmet";
MessageBox.Show($"Öğrenci Adı: {ogrenci.Ad}");
4. Statik Alanlar
Statik alanlar, bir sınıfın her bir nesnesi için ayrı değil, sınıfa özgü olan değişkenlerdir.
Örnek: Statik Alan
public class Ogrenci
{
// Statik alan
public static int ToplamOgrenciSayisi;
public Ogrenci()
{
ToplamOgrenciSayisi++;
}
}
Kullanımı:
Ogrenci ogr1 = new Ogrenci();
Ogrenci ogr2 = new Ogrenci();
MessageBox.Show($"Toplam Öğrenci Sayısı: {Ogrenci.ToplamOgrenciSayisi}");
5. Alanlar ve Windows Form
Windows Form’da alanlar, formun durumunu kontrol etmek veya birden fazla olay arasında veri paylaşmak için sıkça kullanılır.
Örnek: Alanlarla Birden Fazla İşlevin Çalışması
Formda, bir sayı tahmin oyunu yapıldığını düşünelim. Alan, rastgele seçilen sayıyı saklar.
Kod:
public partial class MainForm : Form
{
private int rastgeleSayi;
private Random rnd = new Random();
public MainForm()
{
InitializeComponent();
rastgeleSayi = rnd.Next(1, 101); // 1-100 arasında sayı oluştur
}
private void btnTahminEt_Click(object sender, EventArgs e)
{
int tahmin = Convert.ToInt32(txtTahmin.Text);
if (tahmin == rastgeleSayi)
{
lblSonuc.Text = "Tebrikler, doğru tahmin!";
}
else if (tahmin < rastgeleSayi)
{
lblSonuc.Text = "Daha büyük bir sayı deneyin.";
}
else
{
lblSonuc.Text = "Daha küçük bir sayı deneyin.";
}
}
}
- rastgeleSayi: Alan, rastgele seçilen sayıyı saklar.
- rnd: Rastgele sayı oluşturmak için kullanılan Random nesnesidir.
6. Alanların Avantajları
- Durum Saklama: Form veya sınıf durumu kolayca saklanabilir.
- Gizlilik ve Güvenlik: Erişim belirleyicilerle veri koruma sağlanır.
- Kod Tekrarını Azaltma: Sınıfın her yerinden kullanılabilecek veriler için tekrar tekrar değişken tanımlamaya gerek kalmaz.
- Performans: Sıkça kullanılan veriler bellekte saklanarak işlemler hızlandırılabilir.
Örnekler çok güzel anlaşılır