İçeriğe geç
Educora
Başlangıç18 dk2 / 16

Değişkenler, türler ve string'ler

Değerleri değişkenlerde sakla, temel türleri ve `var`'ı tanı, sayıları dönüştür ve interpolasyonla düzgün metinler oluştur.

Kendini test et
Bu derste öğreneceklerin
  • Değişken tanımlamak ve ona değer atamak
  • int, double, decimal, bool, char, string ve var arasında doğru seçim yapmak
  • Türleri dönüştürmek: (double) gibi tür dönüştürmeler ve int.Parse
  • String interpolasyonunu, biçim belirteçlerini ve string metotlarını kullanmak

Bir oyunda oyuncunun adı, puanı, kalan canları ve seviyesi vardır. Program bu bilgileri bir yerde saklamalı ve oyun ilerledikçe değiştirmelidir. Bunun için değişkenler kullanılır. C#'ta her değişkenin, içinde ne tür bir değer tutabileceğini belirleyen bir türü vardır.

Değişkenler

Bir değişken tanımlamak için önce türü, sonra adı yazılır ve = işaretiyle değer atanır. Daha sonra değişkene yeni bir değer verebilirsin ama yalnızca aynı türden. Adlar genellikle küçük harfle başlar, sonraki her sözcük büyük harfle yazılır: playerName, livesLeft.

C#
string playerName = "Leyla";
int score = 0;
int livesLeft = 3;
bool isGameOver = false;

score = score + 50;
score += 25;
livesLeft--;

Console.WriteLine(playerName);
Console.WriteLine(score);
Console.WriteLine(livesLeft);
Console.WriteLine(isGameOver);
Beklenen çıktı
Leyla
75
2
False
  • score += 25, score = score + 25 ifadesinin kısaltmasıdır; -=, *= ve /= da vardır.
  • livesLeft-- değeri 1 azaltır, ++ ise 1 artırır.
  • bool değeri ekranda büyük harfle görünür (True ya da False), kodda ise küçük harfle yazılır: true, false.

Temel türler

TürNe tutarÖrnek
inttam sayılar (yaklaşık ±2,1 milyara kadar)int age = 12;
longçok büyük tam sayılarlong views = 3_000_000_000;
doubleondalıklı sayılar (ölçümler, bilimsel hesaplar)double height = 1.52;
decimalpara ve kesin ondalık hesaplamalardecimal price = 4.99m;
boolmantıksal değer: true ya da falsebool isOpen = true;
chartek bir karakter, tek tırnak içindechar grade = 'A';
stringmetin, çift tırnak içindestring city = "Baku";

`var` ve `const`

Tür sağ taraftan açıkça anlaşılıyorsa onun yerine var yazabilirsin; derleyici türü kendisi belirler. Bu, değişkenin türsüz olduğu anlamına gelmez: var city = "Baku"; yazdıktan sonra city sonsuza dek string olarak kalır. Hiç değişmemesi gereken değerler için const kullanılır.

C#
var city = "Baku";
var year = 2026;
var price = 2.5m;
const int DaysInWeek = 7;

Console.WriteLine(city.GetType().Name);
Console.WriteLine(year.GetType().Name);
Console.WriteLine(price.GetType().Name);
Console.WriteLine(DaysInWeek * 4);
Beklenen çıktı
String
Int32
Decimal
28

GetType().Name, türün .NET'teki adını gösterir: int aslında Int32'nin, string ise String'in kısa adıdır. city = 5; yazmayı denersen derleyici CS0029 hatası verir: int, string'e dönüştürülemez. DaysInWeek = 8; yazmak ise hiç mümkün değildir, çünkü bu bir sabittir.

Sayılar ve dönüşümler

7 / 2 işleminin 3 verdiğini zaten biliyorsun. Ondalıklı bir sonuç gerekiyorsa sayılardan birini double'a dönüştür: (double)7 / 2. Buna tür dönüştürme (cast) denir. Ters yönde (int)3.99 ondalık kısmı atar ve 3 verir; yuvarlama yapmaz! Metni sayıya çevirmek için int.Parse, sayıyı metne çevirmek için ToString() kullanılır.

C#
using System.Globalization;

CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;

int apples = 7;
int friends = 2;
Console.WriteLine(apples / friends);
Console.WriteLine((double)apples / friends);
Console.WriteLine((int)3.99);
Console.WriteLine(Math.Round(3.99));

int year = int.Parse("2026");
Console.WriteLine(year + 1);
Console.WriteLine(year.ToString() + "!");
Beklenen çıktı
3
3.5
3
4
2027
2026!

String'ler ve interpolasyon

Metni + ile birleştirmek kısa sürede yorucu olur. String interpolasyonu daha kolaydır: string'in önüne $ konur, değişkenler ve ifadeler ise süslü parantez içinde doğrudan metne yazılır. Parantez içinde iki noktadan sonra bir biçim verebilirsin: F2 ondalık ayırıcıdan sonra iki basamak, N0 ise binlik ayırıcılı bir tam sayı demektir.

C#
using System.Globalization;

CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;

string name = "Murad";
int score = 95;
decimal price = 4.5m;
int views = 1234567;

Console.WriteLine("Hi, " + name + "!");
Console.WriteLine($"{name} scored {score} points.");
Console.WriteLine($"Next time: {score + 5}");
Console.WriteLine($"3 tickets: {price * 3:F2} AZN");
Console.WriteLine($"Views: {views:N0}");
Beklenen çıktı
Hi, Murad!
Murad scored 95 points.
Next time: 100
3 tickets: 13.50 AZN
Views: 1,234,567

String de bir nesnedir ve kullanışlı özellikleri ve metotları vardır. Dikkat: string'ler değiştirilemez; ToUpper() gibi metotlar orijinali değiştirmez, yeni bir string döndürür. Karakterlere indeksle erişilir ve sayma sıfırdan başlar.

C#
string city = "  Baku  ";
string clean = city.Trim();

Console.WriteLine(clean.Length);
Console.WriteLine(clean.ToUpper());
Console.WriteLine(clean.Contains("ak"));
Console.WriteLine(clean.Replace("Baku", "Ganja"));
Console.WriteLine(clean[0]);
Console.WriteLine($"[{city}]");
Beklenen çıktı
4
BAKU
True
Ganja
B
[  Baku  ]
Son satır, Trim() metodunun orijinal city string'ini değiştirmediğini gösterir.

Önemli noktalar

  • Bir değişkenin türü, adı ve değeri vardır: int score = 0;.
  • Tam sayılar için int, ondalıklar için double, para için decimal, metin için string kullan.
  • var türü derleyiciye belirletir ama tür sonradan değişmez; const değiştirilemeyen bir değerdir.
  • (double) ve int.Parse türleri dönüştürür; (int)3.99 yuvarlamaz, 3 verir.
  • $ ile interpolasyon metin oluşturmanın en kolay yoludur; {x:F2} iki ondalık basamak gösterir.
  • String'ler değiştirilemez: ToUpper(), Trim() ve Replace() yeni bir string döndürür.

Kendini test et

10 soru. Her doğru cevap XP kazandırır.

1 / 10
Para tutarları için en uygun tür hangisidir?