c# vsCode:"Deferenzierung eines möglichen nullverweises" problem?

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;
}
FatihBtw 
Fragesteller
 07.05.2022, 13:50

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");

}

0
Console.ReadLine Methode

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 .

FatihBtw 
Fragesteller
 07.05.2022, 13:29

wo

0
TechPech1984  07.05.2022, 13:31
@FatihBtw

habs korrigiert .

Console.ReadLine Methode

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 .

0