Anasayfa / C# / CONSOLE APPS / C# Değişkenler (Variables)

C# Değişkenler (Variables)

Programlama öğrenmeye başladığınızda karşınıza çıkacak en temel ve en hayati kavramlardan biri **”Değişkenler”**dir (İngilizce adıyla Variables). Web sitemizin bu serisinde C# kurulumunu tamamlayıp ilk kodumuzu yazdık. Şimdi ise programlarımızın hafızası olan değişkenleri, günlük hayattan örneklerle ve kolay anlaşılır bir dille en ince ayrıntısına kadar inceleyeceğiz.

Değişken (Variable) Nedir?

Bilgisayar programları verilerle çalışır. Kullanıcının adı, bir ürünün fiyatı, oyundaki skorunuz veya ekrandaki bir yazının rengi… Tüm bu bilgiler bilgisayarın geçici hafızasında (RAM) tutulur.

Değişkenleri, içine farklı eşyalar koyabildiğiniz etiketli kutular olarak düşünebilirsiniz. Örneğin, üzerine “KullaniciAdi” etiketi yapıştırdığınız bir kutunun içine “Ahmet” yazısını koyarsınız. Programınız ne zaman kullanıcının adına ihtiyaç duysa, gidip “KullaniciAdi” etiketli kutunun içine bakar ve “Ahmet” değerini alır. İşin güzel yanı, bu kutunun içindeki değer program çalıştığı sürece değişebilir (adından da anlaşılacağı gibi). Aynı kutuya daha sonra “Mehmet” değerini koyabilirsiniz.

C# Dilinde Değişken Tanımlama Mantığı (Tip Güvenliği)

C# dili, tip güvenli (strongly typed) bir dildir. Bu, C# dilinde bir değişken (kutu) oluşturduğunuzda, o kutunun içine ne tür bir veri koyacağınızı en baştan bilgisayara söylemeniz gerektiği anlamına gelir. Ayakkabı kutusuna sıvı dolduramayacağınız gibi, tam sayı tutması için tasarlanmış bir C# değişkenine de metin koyamazsınız.

Genel değişken tanımlama kuralı şudur: [Veri Tipi] [Değişken Adı] = [Değer];

C# Dilinde En Sık Kullanılan Veri Tipleri

C# ekosisteminde birçok veri tipi olsa da, başlangıç aşamasında aşağıdaki temel tipleri bilmeniz programların %90’ını yazmanız için yeterlidir. Ayrıca modern C# geliştirme süreçlerinde, özellikle gelişmiş komut satırı (CLI) uygulamaları yazarken argümanları ayrıştırmak için yine en çok string, int ve bool gibi temel veri tipleri ile çalışırsınız.

1. Metinsel Veri Tipleri (string ve char)

  • string: Metinleri, kelimeleri veya cümleleri tutmak için kullanılır. Değeri her zaman çift tırnak (” “) içine yazılır.
  • char: Sadece tek bir karakter tutar (örneğin ‘A’, ‘?’, ‘5’). Değeri her zaman tek tırnak (‘ ‘) içine yazılır.
string kullaniciMesaji = "C# öğrenmek çok keyifli!";
char notOrtalamasi = 'A';

2. Tam Sayı Veri Tipi (int)

  • int: İngilizce “integer” kelimesinin kısaltmasıdır. Eksi ve artı yönde milyarlara varan tam sayıları tutar. Matematiksel işlemler için idealdir. Sayılar tırnaksız yazılır.
int dogumYili = 1995;
int gunlukAdimSayisi = 10500;

3. Ondalıklı Sayı Veri Tipleri (double, float, decimal)

  • double: Bilimsel hesaplamalarda ve genel ondalıklı sayılarda en çok kullanılan tiptir.
  • decimal: Özellikle parasal hesaplamalarda (e-ticaret sistemleri, muhasebe uygulamaları) virgülden sonraki hassasiyeti kaybetmemek için tercih edilir.
double piSayisi = 3.14159;
decimal urunFiyati = 299.99m; // decimal değerlerin sonuna 'm' veya 'M' harfi konur.

4. Mantıksal Veri Tipi (bool)

  • bool: Sadece iki değer alabilir: true (doğru/açık) veya false (yanlış/kapalı). Programlarda “Kullanıcı giriş yaptı mı?”, “Sipariş onaylandı mı?” gibi evet/hayır sorularının cevabını tutar.
bool kullaniciGirisYaptiMi = true;
bool karanlikModAcikMi = false;

var Anahtar Kelimesi ile Örtük Tip Tanımlama (Implicit Typing)

C# dilinde değişkeninizin tipini açıkça belirtmek (örneğin satırın başına string veya int yazmak) istemezseniz, harika bir alternatifiniz vardır: var anahtar kelimesi.

Kodu yazarken var anahtar kelimesini kullandığınızda, bu ifade örtük olarak yazılmış (implicitly typed) bir yerel değişken tanımlar. Bunun anlamı, değişkenin tipinin, o değişkene atadığınız nesnenin derleme zamanındaki (compile-time) tipine göre bilgisayar tarafından otomatik olarak belirlenmesidir.

var sehir = "İstanbul"; // C# bunun bir 'string' olduğunu anlar.
var sicaklik = 25;      // C# bunun bir 'int' (tam sayı) olduğunu anlar.
var okumaBasarili = File.OpenText("dosya.txt"); // Arka planda karmaşık bir StreamReader nesnesi döner, tipini C# otomatik ayarlar.

var kullanmak kodunuzu daha temiz ve okunabilir yapar. Ancak, kutunun içine ilk başta hangi tip değeri koyduysanız, değişkenin tipi o olarak kilitlenir; sonradan farklı bir tip atayamazsınız.

Değişken İsimlendirme Kuralları (Clean Code Yaklaşımı)

İyi bir yazılımcı olmak sadece çalışan kod yazmak değil, başkalarının da anlayabileceği kod yazmaktır. Değişken isimlendirirken şu kurallara uymalısınız:

  1. Değişken isimleri sayıyla başlayamaz. (1kullanici yanlıştır, kullanici1 doğrudur).
  2. Boşluk içeremez. (kullanici adi yanlıştır).
  3. C# dilinde yerel değişkenleri isimlendirirken genellikle camelCase (ilk kelimenin baş harfi küçük, sonrakilerin büyük) standardı benimsenir: kullaniciDogumYili, toplamSiparisTutari gibi.
  4. Kısa ve anlamsız (x, y, z, a) isimler yerine, değişkenin ne tuttuğunu belli eden anlamlı isimler seçin.

Modern C# ile Değişken Kullanımı: Top-Level Statements

Eski C# sürümlerinde, basit bir değişkeni ekrana yazdırmak için bile sınıflar (class Program) ve ana metotlar (static void Main) yazmak zorundaydık. Ancak C# 9 ile birlikte “Top-level statements” (Üst düzey ifadeler) özelliği tanıtıldı.

Bu sentaks özelliği sayesinde, gereksiz kod kalabalığı ortadan kalkar ve yazdığınız çalıştırılabilir kodu doğrudan dosyanın en köküne (örneğin 1. satıra) yerleştirebilirsiniz. dotnet new console komutu ile yeni bir konsol uygulaması oluşturduğunuzda, bu modern üst düzey ifadeler varsayılan olarak kullanılır ve her ölçekteki program için kusursuz çalışır.

Öğrendiklerimizi Pekiştirelim: Mini Profil Uygulaması

Gelin öğrendiğimiz tüm değişken tiplerini ve var anahtar kelimesini kullanarak, modern C# (Top-level statements) standartlarında bir kullanıcı profili oluşturalım. IDE’nizi (örneğin Visual Studio Code) açın ve Program.cs dosyanıza şu kodları yapıştırın:

// 1. Değişkenleri Tanımlayalım ve Değer Atayalım
string isim = "Ali Yılmaz";
int yas = 28;
double boy = 1.78;
bool mezunMu = true;
char kanGrubuHarfi = '0';

// 'var' kullanarak değişken tanımlama
var meslek = "Yazılım Geliştirici";

// 2. Bu değişkenleri kullanarak ekrana anlamlı bir çıktı yazdıralım.
// String birleştirme işlemi ($) kullanarak değişkenleri metnin içine gömüyoruz.
Console.WriteLine("--- KULLANICI PROFİLİ ---");
Console.WriteLine($"Adı Soyadı: {isim}");
Console.WriteLine($"Yaş: {yas}");
Console.WriteLine($"Boy: {boy} metre");
Console.WriteLine($"Kan Grubu: {kanGrubuHarfi}");
Console.WriteLine($"Mezuniyet Durumu: {mezunMu}");
Console.WriteLine($"Meslek: {meslek}");

// Programın kapanmaması için kullanıcıdan bir tuşa basmasını bekleyelim
Console.WriteLine("Çıkmak için Enter'a basın...");
Console.ReadLine();

Bu kodu çalıştırdığınızda, bilgisayar sırasıyla hafızada (RAM) gerekli kutuları oluşturacak, içlerine sizin verdiğiniz bilgileri yerleştirecek ve ardından o kutuların içindeki verileri okuyup konsol ekranına basacaktır. İşte değişkenlerin temel mantığı bu kadar basittir!

Etiketlendi:

Cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir