Neden dize türü için varsayılan değer boş bir dize yerine boş?
Oldukça sinir bozucu ToUpper()
, StartWith()
vb gibi güvenli yöntemler uygulayabilirim önce null
tüm dizeleri test etmek için
Eğer varsayılan değer string
boş bir dize, ben olmaz yoksa test, ve ben hissediyorum ki bu daha tutarlı diğer değer türleri gibi int
double
örneğin.
Ayrıca Nullable<String>
mantıklı olur.
Neden C tasarımcıları yaptım# dizeleri varsayılan değer olarak null
kullanmayı tercih?
Not: Bu this question ile ilgilidir ama ne neden onun yerine bunu yapmak için daha fazla odaklanmış.
CEVAP
Neden dize türünün varsayılan değeri yerine boş boş. dize?
string
çünkübaşvuru türütüm başvuru türleri için varsayılan değer null
.
Oldukça rahatsız edici önce null için tüm dizeleri test etmek için. güvenle ToUpper gibi yöntemleri uygulamak(), StartWith() vs..
Başvuru türlerinin davranışı ile tutarlıdır. Örnek üyeleri çağırmadan önce, bir null başvuru için bir kontrol koymak gerekir.
Eğer string varsayılan değer boş bir dize olsaydı, olmazdı test etmek için, ve diğer daha tutarlı olmak isterdim int gibi türleri değer ya da örneğin çift.
Belirli bir başvuru türü null
dışında varsayılan değer atama yapardıtutarsız.
Ayrıca
Nullable<String>
mantıklı olur.
Nullable<T>
değer türleri ile çalışır. Not Nullable
bu kural değişti onlar kırık bir sürü kod var bu yüzden .NET platform orijinal tanıtıldı değildi aslında.(Nezaket) 17**
Olamaz Dize kullanın.İsteğe bağlı bir ...
Neden char[] şifreler için Dize Java t...
Python katılın, neden dize.liste yerin...
Dize için bir alternatif var.Bu büyük ...
Neden ekleme "" bir Dize içi...