Ben bir intnull değeri olarak
int? i=null;
iBurada bir referans türü haline geliyor mu ?
Ben bir intnull değeri olarak
int? i=null;
iBurada bir referans türü haline geliyor mu ?
Yanıtlar:
Hayır, sıfırlanabilir bir yapıdır. Null olan yapının iki değeri vardır:
intiçin int?, DateTimeiçin DateTime?, vb.).HasValuemülktür.)Veri türünün değerini ayarladığınızda, yapı HasValuetrue olarak değişir .
Gönderen null türleri (C # programlama Kılavuzu) :
Null olabilecek türler, System örneğidir. Null edilebilir yapı.
ve
Null olabilecek türler, null değeri atanabilecek değer türü değişkenleri temsil eder. Bir başvuru türüne dayalı olarak null olabilecek bir tür oluşturamazsınız. (Referans türleri zaten boş değeri desteklemektedir.)
Yani, hayır referans türleri değil.
Sıfırlanabilir türler ne değer türleri ne de referans türleridir. Daha çok değer türlerine benzerler, ancak referans türlerinin birkaç özelliğine sahiptirler.
Doğal olarak, boş değerli türler olarak ayarlanabilir null. Ayrıca, boş değerli bir tür genel bir structkısıtlamayı karşılayamaz . Ayrıca, nullable tipine HasValueeşit bir kutu koyduğunuzda false,null kutulu bir nulllable tip yerine işaretçi benzer bir durum vardır).
Bu özellikler nullable tiplerini değer olmayan türler haline getirir, ancak bunlar da referans türleri değildir. Kendi özel sıfırlanabilir değer tipleridir.
Hayır, Nullable türü aslında bir yapıdır. Çalışma zamanı, sizin için boş bir değer ayarını akıllıca işleyecek ve olmadığında bir referans türünün görünümünü verecektir.
Null olabilecek türler referans türleri olamaz.