C#

C# this & readonly

Yazar - UĞUR

this

Bu anahtar kelime sınıfın(class) içinde kullanılır ve sınıfın geçerli örneğini, yani geçerli nesneye atıfta bulunulduğu anlamına gelir.
This kullanımlarından biri, sınıf üyelerini aşağıdaki örnekte gösterildiği gibi bir metodun yerel veya resmi parametreleri gibi diğer verilerden ayırmaktır:
Blabla’nın ortak kullanımlarından biri, aşağıdaki örnekte gösterildiği gibi, sınıf üyelerini, metodun yerel veya resmi parametreleri gibi diğer veriden ayırmaktır:

class Person {
 private string name;
 public Person(string name) {
 this.name = name;
 }
}

Burada, this.name sınıfın üyesini temsil eder, oysa name constructor parametresini temsil eder.

This ifadesinin bir başka yaygın kullanımı, geçerli instance (isteği) bir metotla parametre olarak geçirmektir: ShowPersonInfo (this);

readonly

readonly modifier , değiştirilmiş bir yapıdan sonra bir üyedir. Bu, readonly olarak bildirilen alanın yalnızca onu bildirdiğinizde veya bir constructor da değiştirilebileceği anlamına gelir.
Örneğin:

class Person {
 private readonly string name = "John"; 
 public Person(string name) {
 this.name = name; 
 }
}

Başka bir yerde name alanını değiştirmeye çalışırsak bir hata alırız.
readonly ve const alanları arasında üç büyük fark var.
İlk olarak, const bir alan bildirildiğinde değer atanmalıdır, oysa readonly bir alan, aşağıdakiler gibi değer atanmadan ilan edilebilir:

readonly string name; // OK
const double PI; // Error

İkincisi, readonly bir alan değeri bir constructor da değiştirilebilir, ancak constant bir değer değiştirilemez.
Üçüncüsü, readonly alana bir hesaplamanın sonucu olan bir değer atanabilir, ancak constant bu şekilde kullanılamaz:

readonly double a = Math.Sin(60); // OK
const double b = Math.Sin(60); // Error!

Yorum Yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.