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

  • makemebad35

    makemebad35

    17 NİSAN 2006
  • talkandroid

    talkandroid

    27 Mayıs 2010
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005