Zawsze inicjowałem moje ciągi na NULL, myśląc, że NULL oznacza brak wartości, a „” lub String.Empty jest prawidłową wartością. Widziałem ostatnio więcej przykładów kodu, w którym String.Empty jest uważana za wartość domyślną lub nie reprezentuje żadnej wartości. Wydaje mi się to dziwne, ponieważ z nowo dodanymi typami dopuszczającymi wartość null w c # wydaje się, że cofamy się o ciągi, nie używając wartości NULL do reprezentowania `` Brak wartości ''.
Czego używasz jako domyślnego inicjatora i dlaczego?
Edycja: W oparciu o odpowiedzi, kontynuuję moje dalsze przemyślenia
Unikanie obsługi błędów Jeśli wartość nie powinna być zerowa, dlaczego została ustawiona na
NULL
w pierwszej kolejności? Może lepiej byłoby zidentyfikować błąd w miejscu, w którym występuje, zamiast ukrywać go w pozostałej części kodu?Unikanie sprawdzania wartości null Jeśli masz dość sprawdzania wartości null w kodzie, czy nie byłoby lepiej abstrakcyjnie sprawdzać wartości null? Być może zawiń (lub rozszerz!) Metody łańcuchowe, aby były
NULL
bezpieczne? Co się dzieje, jeśli ciągle używaszString.Empty
i zdarza się, że null działa w twoim systemie, czy mimo wszystko zaczniesz dodawaćNULL
sprawdzenia?
Nie mogę się powstrzymać od powrotu do opinii, że to lenistwo. Każdy DBA spoliczkowałby cię na dziewięć sposobów, gdybyś użył „” zamiast null
w swojej \ jej bazie danych. Myślę, że te same zasady obowiązują w programowaniu i powinien być ktoś, kto uderzy w głowę tych, którzy używają, String.Empty
a nie NULL
reprezentują żadnej wartości.
Powiązane pytania