Finden Sie einfach das Console.WriteLine
kann bearbeiten null
String richtig wie Console.WriteLine((string)null)
;
Kann ich davon ausgehen, dass die meisten Klassenbibliotheken korrekt mit Nullreferenzen umgehen?
Finden Sie einfach das Console.WriteLine
kann bearbeiten null
String richtig wie Console.WriteLine((string)null)
;
Kann ich davon ausgehen, dass die meisten Klassenbibliotheken korrekt mit Nullreferenzen umgehen?
Nein.
Das hängt ganz von der Methode ab, die Sie aufrufen. Siehe die MSDN-Dokumentation pro Methode, was zu erwarten ist, wenn Sie eine null
.
Es ist niemals sicher, Annahmen über null
wenn Sie eine fremde API oder Bibliothek aufrufen, insbesondere wenn Sie den Quellcode nicht als Referenz verwenden können. Lesen Sie immer die Dokumentationen. Und wenn die Dokumentation es nicht sagt, programmieren Sie defensiv.
Die Bibliotheksmethoden sind jedoch so programmiert, dass sie, wenn sie keine Antwort auf eine null
wird eine Ausnahme ausgelöst, die Ihnen mitteilt, dass es sich um ein ungültiges Argument handelt.
Nun... Ja.
Sie können davon ausgehen, dass (fast) alle Klassen Null-Referenzen korrekt behandeln.
Ich glaube jedoch, dass das, was Sie mit "richtig" meinen, nicht dasselbe ist wie das, was der Autor des Kurses meint.
Wenn Sie zum Beispiel versuchen, eine Datei zu öffnen und null
für den Pfad zu der zu öffnenden Datei, wird es nicht stillschweigend fehlschlagen, sondern eine Ausnahme auslösen.
Wenn Sie das mit "richtig handhaben" meinen, dann ja. In der Tat hoffe ich, dass alle Klassen Null-Referenzen korrekt behandeln.
Erwarten Sie aber nicht, dass das Programm einfach weiterläuft, als wäre nichts geschehen.
Im Allgemeinen, wenn das Argument (egal ob String oder ein anderer Typ) erforderlich ist, um etwas zu tun, wird die Methode in der Regel mit Ausnahme abstürzen, wenn das Argument null ist.
Ein paar Beispiele:
Wenn das Argument hingegen nicht erforderlich ist, "schluckt" die Methode in der Regel den Frosch, wenn er Null ist, und behandelt ihn als Standardwert, z. B. als leeren String. Im Fall der WriteLine-Methode des Console-Objekts ist es nicht wirklich brauchen die Zeichenfolge, es einfach in die Konsole zu schreiben, so dass es egal ist, wenn es null ist.
Also wie andere hier gesagt, es hängt davon ab, welche Methode Sie versuchen, zu verwenden, und Sie besser lesen, bevor Sie versuchen, Null-Werte übergeben.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.