Yazılım dünyasına ve özellikle C# Windows Forms ile masaüstü programlamaya adım attığınızda öğrenmeniz gereken en temel kavramlardan biri değişkenler ve veri tipleridir. Ekranda gördüğünüz bir metin kutusuna (TextBox) girilen yaş bilgisini hesaplamak, kullanıcının ismini hafızada tutmak veya bir alışveriş sepetindeki ürünlerin toplam tutarını bulmak için bu kavramlara ihtiyaç duyarsınız.
C# WINDOWS FORM DEĞİŞKENLER VE VERİ TİPLERİ EĞİTİM VİDEOSU İÇİN TIKLAYIN
Bu rehberde, değişkenlerin ne olduğunu, bellekte nasıl saklandığını, hangi veri tiplerinin kullanıldığını ve Windows Forms arayüzünde form kontrolleriyle (örneğin TextBox ve Button) birlikte nasıl kullanıldıklarını, bol örnekli bir şekilde, sıfırdan başlayanlar için detaylıca inceleyeceğiz.
Değişken (Variable) Nedir?
Programlama dünyasında değişkenler, program çalıştığı sürece çeşitli türlerdeki verileri RAM bellekte saklayan veri tutuculardır. Program kapatıldığında veya durdurulduğunda bu değişkenler RAM bellekten silinir.
Değişkenlerin mantığını anlamak için onları günlük hayattaki alışveriş sepetlerine benzetebiliriz. Değişkenler; aynı anda içinde sadece tek bir ürün taşınabilen, farklı taşıma kapasitelerine sahip ve üzerlerinde seri numaraları yazılı alışveriş sepetleri gibi düşünülebilir. İhtiyacınıza göre, taşıyacağınız ürünün (verinin) boyutuna ve ağırlığına en uygun sepeti (veri tipini) seçmeniz gerekir. Nasıl ki küçük bir ürünü devasa bir sepette taşımak verimsizse, programlamada da küçük bir sayıyı bellekte çok yer kaplayan bir değişkende saklamak gereksiz RAM tüketimine yol açar. Bu sepetlerin içeriği, tıpkı programdaki değişkenlerin değerleri gibi, süreç boyunca sürekli değişebilir.
Temel C# Veri Tipleri Nelerdir?
C# dilinde, içine aktarılacak verinin türüne (metin, tam sayı, ondalık sayı vb.) göre farklı veri tipleri bulunur. Her veri tipinin bellekte (RAM) kapladığı alan ve alabileceği minimum-maksimum değer aralığı birbirinden farklıdır.
1. Tam Sayı Veri Tipleri
Sadece tam sayıları (küsuratsız) tutmak için kullanılırlar.
- byte: Bellekte 1 bayt yer kaplar ve 0 ile 255 arasındaki değerleri saklar.
- sbyte: Bellekte 1 bayt yer kaplar, -128 ile 127 arasındaki değerleri alır.
- short / ushort: Bellekte 2 bayt yer kaplarlar.
- int: En çok kullanılan tam sayı tipidir. Bellekte 4 bayt yer kaplar ve yaklaşık -2.14 milyar ile +2.14 milyar arasındaki tam sayıları tutabilir.
- long: Bellekte 8 bayt yer kaplar, çok daha devasa tam sayı sınırlarına sahiptir.
2. Ondalık Sayı Veri Tipleri
Küsuratlı (virgüllü) sayıları saklamak için kullanılırlar.
- float: Bellekte 4 bayt yer kaplar.
- double: Bellekte 8 bayt yer kaplar ve hassasiyeti daha yüksektir. Matematiksel hesaplamalarda sıkça tercih edilir.
- decimal: Bellekte 16 bayt yer kaplar. Finansal ve parasal (muhasebe) hesaplamalarında kuruş hassasiyeti çok önemli olduğu için kusursuz sonuç verir.
3. Metinsel Veri Tipleri
Yazıları ve karakterleri saklamak için kullanılırlar.
- char: Bellekte 2 bayt yer kaplar ve sadece tek bir karakter tutar (Örn: ‘A’, ‘1’, ‘?’).
- string: Metinsel (kelime veya cümle) ifadeleri tutar. Sınırı belirsize yakındır, bellekte verinin uzunluğuna göre yer kaplar.
4. Mantıksal Veri Tipi
- bool: Sadece iki değer alabilir: true (doğru) veya false (yanlış). Bellekte 1 bitlik alan kaplamasıyla bilinir. Özellikle “Kullanıcı sisteme giriş yaptı mı?” veya “Lamba açık mı?” gibi evet/hayır sorularının cevabını tutmak için idealdir.
Değer ve Referans Tipler (Bellek Yönetimi)
C# ve .NET platformunda veriler, RAM bellekte Yığın (Stack) ve Öbek (Heap) olmak üzere iki farklı bölgede tutulur.
- Değer Tipleri (Value Types): Veriyi bizzat barındıran ve doğrudan Yığın (Stack) belleğinde saklanan türlerdir.
int,double,float,char,boolvebytegibi tipler değer tipleridir. - Referans Tipleri (Reference Types): Verinin kendisini Öbek (Heap) bölgesinde saklarken, bu verinin bellekteki adresini (referansını) Yığın (Stack) bölgesinde tutan türlerdir. Sınıflar (Class), diziler (Array) ve
stringveri tipi referans tiplerine örnektir.
Değişken Tanımlama ve Değer Atama
C# dilinde bir değişkeni kullanmadan önce onun tipini ve adını sisteme tanıtmanız (tanımlamanız) gerekir.
Sözdizimi: (Değişkenin Veri Türü) (Değişken Adı) = (Değişkenin Değeri);
int sayi = 52;
double Pisayisi = 3.14159;
string adi_soyadi = "Ali YOLCU";
char karakter = 'A';
bool cevap = true;
Aynı veri türündeki birden fazla değişkeni, aralarına virgül koyarak tek bir satırda da tanımlayabilirsiniz. Örneğin: int sayi, deger, sonuc;.
Değişken İsimlendirme Kuralları ve Standartları
Değişkenlere isim verirken programın hata vermemesi için uymanız gereken kesin kurallar vardır:
- Değişken isimlerinde boşluk kullanılamaz. Boşluk yerine alt çizgi (
_) kullanılabilir. (Örn:string ad soyad;yanlıştır,string ad_soyad;doğrudur). ?,!,:,%,+,-gibi özel karakterler kullanılamaz.- Değişken isimleri sayı ile başlayamaz. (Örn:
byte 1not;yanlıştır,byte not1;doğrudur). - C# büyük ve küçük harfe duyarlı bir dildir. Yani
ulong toplamTutar;ileulong ToplamTUTARbilgisayar için tamamen farklı iki değişkendir. - Programlamaya ait özel anahtar kelimeler (
if,else,classvb.) değişken ismi olarak kullanılamaz.
İsimlendirme Standartları: Kodun okunabilirliğini artırmak için yazılımcılar arasında bazı standartlar kullanılır.
- Camel Case (Deve Gösterimi): İlk kelimenin baş harfi küçük, sonrakilerin baş harfi büyük yazılır (Örn:
int toplamHesapTutari;). - Snake Case (Yılan Gösterimi): Kelimeler arasına alt çizgi konulur (Örn:
string kullanici_adi;). - Pascal Case: Her kelimenin baş harfi büyük yazılır (Örn:
string KullaniciAdi;).
Windows Forms’ta Tip Dönüşümleri (Convert ve ToString)
Windows Forms ile çalışırken arayüzden (örneğin TextBox kontrolünden) aldığınız veya arayüze yazdıracağınız veriler her zaman metinsel (string) yapıdadır. Bir kullanıcının metin kutusuna “25” yazması, bilgisayar için matematiksel bir 25 sayısı değil, ‘2’ ve ‘5’ karakterlerinden oluşan bir yazıdır. Bu verilerle toplama veya çıkarma yapmak isterseniz tip dönüşümü uygulamanız şarttır.
Convert.ToInt32(metin): String ifadeyiint(tam sayı) türüne çevirir.Convert.ToDouble(metin): String ifadeyidoubletürüne çevirir.ToString(): Matematiksel veya farklı türdeki bir veriyi, form kontrollerinde (TextBox, Label vb.) göstermek üzere tekrarstringmetne dönüştürür.
Örnek Windows Forms Uygulaması: İki Sayıyı Toplama
Öğrendiğimiz değişken tanımlama ve tip dönüşümü kavramlarını, görsel bir Windows Forms uygulamasında pekiştirelim. Formumuzda kullanıcının veri gireceği 2 adet TextBox, sonucu göstereceğimiz 1 adet TextBox ve işlemi tetikleyecek 1 adet Button (Sayıları Topla) olsun.
“Sayıları Topla” butonuna çift tıklayıp Click (tıklama) olayı içerisine şu kodları yazarız:
private void btnTopla_Click(object sender, EventArgs e)
{
// 1. Değişkenleri Tanımlıyoruz
int sayi1, sayi2, toplam;
// 2. TextBox'lardan (metin) gelen değerleri Int (tam sayı) tipine Convert ile dönüştürüyoruz
sayi1 = Convert.ToInt32(textBox1.Text);
sayi2 = Convert.ToInt32(textBox2.Text);
// 3. Matematiksel işlemimizi yapıyoruz
toplam = sayi1 + sayi2;
// 4. Int (tam sayı) olan toplam sonucunu, TextBox'ta göstermek için ToString() ile metne çeviriyoruz
textBox3.Text = toplam.ToString();
}
Not: Eğer Convert işlemi yapmadan doğrudan textBox3.Text = textBox1.Text + textBox2.Text; yazsaydık ve kullanıcı 1. kutuya “25”, 2. kutuya “2” girseydi; program bunları matematiksel olarak toplamaz, yan yana birleştirip ekrana “252” yazardı.
Sonuç
C# Windows Forms projelerinde sağlam ve hatasız uygulamalar geliştirmek, değişkenlerin ve veri tiplerinin arka plandaki çalışma mantığını kavramakla başlar. Doğru veri tipini seçmek belleği (RAM) optimize etmenizi sağlarken, standartlara uygun isimlendirmeler yapmak (Camel Case vb.) yazdığınız kodun profesyonelliğini ve okunabilirliğini artırır. Ayrıca form kontrollerinin sadece metinsel (string) çalıştığını unutmayarak doğru yerde Convert sınıfını veya ToString() metodunu kullanmak sizi birçok “Tip Uyuşmazlığı” hatasından kurtaracaktır. Bu temel konuları iyice kavradıktan sonra if-else yapılarına ve döngülere geçerek projelerinizi çok daha dinamik hale getirebilirsiniz. İyi kodlamalar!




