c# vsCode:"Deferenzierung eines möglichen nullverweises" problem?
Hallo, bei mir wird "words" gelb unterstrichen und ich wollte fragen warum das so ist. Da steht:"Deferenzierung eines möglichen Nullverweises,words darf hier NULL sein". Und wenn ich oben "words" mit string definiere dann kommt:"Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert"
2 Antworten
Die ReadLine-Methode liefert entweder die nächste Zeile von Zeichen aus dem Eingabekanal oder, wenn keine Zeile mehr vorhanden ist, den Wert null.
Deine IDE macht dich an der Stelle also darauf aufmerksam, dass es auch zu den Fall kommen kann, dass in words nur der Wert null steht, was wiederum zu einen unbehandelten Ausnahmefall / Programmabsturz führen würde.
Es wäre sicherer, den Ausnahmefall mit einzuplanen.
Zum Beispiel so:
int length;
if (string.IsNullOrEmpty(words))
{
length = 0;
}
else
{
length = words.Split(' ').Length;
}
Die nächste Zeile von Zeichen aus dem Eingabestream oder
null
, wenn keine weiteren Zeilen verfügbar sind.
du könntest also null zurück bekommen , also bitte darauf prüfen .
habs korrigiert .
Console.ReadLine MethodeDie nächste Zeile von Zeichen aus dem Eingabestream oder
null
, wenn keine weiteren Zeilen verfügbar sind.
du könntest also null zurück bekommen , also bitte darauf prüfen .
danke ,aber bei "length==1" wird ein fehler gemeldet:Verwendung der nicht zugewiesenen lokalen Variablen "length":
if (string.IsNullOrEmpty(words))
{
System.Environment.Exit(0);
}
else if(length==1)
{
length = words.Split(' ').Length;
System.Console.WriteLine("There is " + length);
}
else
{
length = words.Split(' ').Length;
System.Console.WriteLine("There are " + length+" words in that sentence");
}