正在检查Console.ReadLine()=无效的

本文关键字:无效 ReadLine 检查 Console | 更新日期: 2023-09-27 18:26:27

我正在为我的应用程序制作CMD,并且在检查`Console.ReadLine!=空``

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

SomeFunction()中,我拆分了这个字符串,例如:

Console.WriteLine(input[0]);

问题是,当用户点击Enter一次时,它就能工作。但是如果用户再次点击它,我会得到一个异常。

[0]不存在。

正在检查Console.ReadLine()=无效的

当您点击ENTER时,Console.ReadLine返回空的string。它不会返回null。改为使用string.IsNullOrEmpty进行检查。

if(!string.IsNullOrEmpty(input))

根据文档,只有当您按下CTRL + Z.

时,它才会返回null

谢谢大家!

我想我可以检查字符串的长度是否为0。

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

非常简单。但是

!string.IsNullOrEmpty(input)

同样有效。每天都在学习新东西。谢谢你的帮助!

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

不要只检查null,而是尝试使用String.IsNullOrEmpty检查它是空的还是null,因为当你不输入任何内容并按Enter时,你会得到一个空字符串,这会导致

类型为"System.IndexOutOfRangeException"的未处理异常

您更新的完整代码应如下

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