Checking Console.ReadLine()!=null

2020-03-07 14:26发布

问题:

i am making a CMD for my applcation, and figure i have a trouble when i check Console.ReadLine!=null

---Full Code---

   string input = Console.ReadLine();
    if(input!=null)
    {
    SomeFunction(input);
    }

---End Of Code---

in SomeFunction() i split this string, so for example:

  Console.WriteLine(input[0]);

so Problem is:

It works if user hits enter once. But if use does that again i am getting an exception: That [0] does not exist.

回答1:

When you hit ENTER, Console.ReadLine returns empty string. It doesn't return null. Use string.IsNullOrEmpty to check instead.

if(!string.IsNullOrEmpty(input))

According to documentation it will return null only if you press CTRL + Z.



回答2:

Thanks Every one!

i figured that i can just check if length of string is 0.

if(input.Length==0) //(Actually, will check if input.Length !=0 before calling function based on original source)

pretty simple. but

!string.IsNullOrEmpty(input)

works as well. every day learning something new. thanks for your help!



回答3:

if(!string.IsNullOrWhiteSpace(input))
    DoYourWork(input);


回答4:

Instead of just checking for null, try checking if it is empty or null using String.IsNullOrEmpty because, when you do not input anything and press Enter, you get an empty string which results in an

An unhandled exception of type 'System.IndexOutOfRangeException'

Your updated full code should be as follows

string input = Console.ReadLine();
if (!string.IsNullOrEmpty(input) )
{
    SomeFunction(input);
}


标签: c# null console