const ve readonly
const ve readonly arasındaki farkı öğrenirsin.
const alanlar
Bir const (constant) alan derleme zamanında hesaplanan değişmez değerdir. Tanımı: public const double Pi = 3.14;.
Const değerler derleme zamanında yerlerine konur; yani her Pi başvurusu 3.14 ile değiştirilir. Bu yüzden const alanlara yalnızca sabit ifadeler atanabilir; metot çağrısı veya çalışma zamanı değeri verilmez. Const alanlar örtük olarak statiktir; ClassName.Pi ile erişilir.
readonly alanlar
Bir readonly alan, çalışma zamanında değişmez değer tutar. Tanımı: public readonly int Radius;. Yalnızca tanımlandığı yerde ya da yapıcı metot içinde atanabilir; sonrasında değiştirilemez.
Const'tan farkı: readonly'ye new DateTime(2024,1,1) gibi çalışma zamanı değeri verilebilir. Ayrıca readonly örnek üyesidir; her örnekte farklı değer alabilir. Sabit hesaplaması yapılamayan veya örneğe özel değerler için readonly kullanılır.
Uygulama Daire çevresi
Circle sınıfına public const double Pi = 3.14; ve public readonly int Radius; alanlarını ekle. Yapıcı this.Radius = radius; atamasını yapsın. Perimeter metodu (int)(2 * Pi * Radius) döndürsün. Main'de new Circle(5) üretip çevreyi yazdır.
Örnek çözümü göster
Circle içine `public const double Pi = 3.14;` ve `public readonly int Radius;` ekle. Yapıcıda `this.Radius = radius;` yaz. Perimeter gövdesinde `return (int)(2 * Pi * Radius);` yaz. Main içine `var c = new Circle(5); Console.WriteLine(c.Perimeter());` yaz.
Örnek çözüm:
using System;
class Circle
{
public const double Pi = 3.14;
public readonly int Radius;
public Circle(int radius)
{
this.Radius = radius;
}
public int Perimeter()
{
return (int)(2 * Pi * Radius);
}
}
class Program
{
static void Main()
{
var c = new Circle(5);
Console.WriteLine(c.Perimeter());
}
}
Kendini test et
-
const ile ilgili hangisi doğrudur?
- Const alanlara çalışma zamanında değer atanabilir.
- Const alanlar örtük olarak statiktir.
- Const alanlar yapıcı metotta değiştirilebilir.
- Const alanlar yalnızca string olabilir.
Cevabı göster
Const alanlar örtük olarak statiktir. — Doğru. Const alanlar örtük olarak statiktir; sınıf adıyla erişilir.
-
Boşluğu doldur: const tanımı
class MathConst { public const double Pi = ____; }Cevabı göster
class MathConst { public const double Pi = 3.14; } -
Eşleştir: const ve readonly
- const
- derleme zamanı sabiti
- readonly
- yapıcıda atanır
- const Pi
- örtük statik
- readonly Radius
- her örnekte ayrı