Ich versuche zu verstehen, warum eine nicht nullbare Zeichenfolge auf null initialisiert wird, anstatt auf eine leere Zeichenfolge. Zum Beispiel:
%Vor% Bin ich verrückt zu denken, dass der Wert einer nicht nullbaren Zeichenfolge standardmäßig auf String.Empty
gesetzt werden sollte? Gibt es eine Standardmethode, um dieses Verhalten zu erzwingen, abgesehen von einem benutzerdefinierten Getter?
String ist Referenztyp - Werte werden standardmäßig auf null
initialisiert.
Sie können Zeichenfolgen im Konstruktor in string.Empty
initialisieren, und es wird empfohlen, dies zu tun, weil:
null
value bedeutet "Ich weiß nicht, was der Wert ist" Daher sollten fast alle String-Eigenschaften (by you) auf string.Empty
value initialisiert sein. Versuchen Sie, etwas über "Nullobjektmuster" zu lesen. Die Programmierung nach diesem Prinzip macht deutlich lesbareren und fehlerfreien Code.
Da Sie Eigenschaften verwenden, um die Zeichenfolgenwerte abzurufen, besteht eine andere Möglichkeit darin, string.Empty zurückzugeben, wenn sie tatsächlich null ist.
%Vor%Eine viel bessere Lösung wäre, die Zeichenfolge zu string.Empty zu initialisieren (wenn dies das erwartete Verhalten ist). Sie können dies in C # 6+ wie folgt tun:
%Vor%Auf diese Weise ist es eine einmalige Initialisierung und keine Überprüfung jeder Anfrage.
Tags und Links string c# initialization