SORU
15 Ocak 2013, Salı


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
15 Ocak 2013, Salı


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**

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • mliskIT

    mliskIT

    29 Mart 2012
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006