Junior
C#'ta readonly modifiyeri ile alanlar hangi amaçlar için kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde readonly modifiyecili alan, yalnızca alanın bildirilmesi sırasında veya sınıfın yapıcı metodunda başlatılabilir. Başlatmadan sonra değeri değiştirilemez.
Kullanım amaçları:
- Değişmezliği sağlama: Nesne oluşturulduktan sonra alanın değerinin kazara değiştirilmesini önler. Bu, kodun güvenilirliğini artırır ve hata ayıklamayı kolaylaştırır.
- Her örnek için sabitler: Statik sabitler (
const) ile karşılaştırıldığında,readonlyalanlar farklı örnekler için farklı değerler alabilir. - Yapıcıda başlatma: Yapıcı mantığına dayanarak alanın son değerini belirlemeye izin verir, bu da
constalanlar için mümkün değildir (derleme sırasında literal veya sabit ile başlatılmalıdırlar). - Yapılarla çalışırken performans artışı: Yapılar için,
readonlyalanlar performansı artırabilir çünkü derleyici, değerin değişmeyeceğini bildiği için belirli optimizasyonlar yapabilir.
Örnek:
public class MyClass
{
public readonly int ImmutableValue; // Burada veya yapıcıda başlatılabilir
public readonly string Name;
// readonly alanlara değer atamak için yapıcı
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Bu yöntem derleme hatası verecektir, çünkü readonly alanı değiştirmeye çalışıyor
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Derleme hatası
// }
}