检查字符串[]的空错误?

时间:2017-01-30 14:47:20

标签: c#

我的问题是为什么我们需要在string []中检查null错误。 是不是字符串类型默认接受空值?那么为什么我们应该通过使用Null条件运算符标记(?)来检查string []是否包含null。

例如看这个方法:

来自C#和NetFramework 4.6

这本书
static void TesterMethod(string[] args)
{
  // We should check for null before accessing the array data!
Console.WriteLine($"You sent me {args?.Length} arguments.");
}

我的意思是如果我们可以为字符串赋值null为什么我们应该检查null错误? 为什么要抛出错误?

Console.WriteLine($"You sent me {args.Length} arguments.");

2 个答案:

答案 0 :(得分:7)

如果args为空,则在其上调用属性(Length)将导致NullReferenceException。在调用之前,您必须确保args不为null。

argsstring类型的数组,而不是string本身。

  

那么为什么我们应该通过使用Null条件运算符标记(?)

来检查string []是否包含null

不包含 null, 为空。条件运算符检查数组,而不是数组的内容。

答案 1 :(得分:0)

好吧,当您尝试访问或更改值为null的String时,它可能会引发异常。

最近我正在为学校开发一个Contact List应用程序,我在尝试通过For Each循环打印时遇到了我的String数组中的空值错误(我使用的是VB.NET,但概念是在大多数NetFramework中也是如此)。随着循环的进行,它将搜索数组以打印所选联系人的信息。但是,如果循环达到空值,则循环将停止,从而终止应用程序。

所以,这有点情境化。如果你想确保事故不能过早地阻止你的程序,最好尝试一个空的例外以防万一。但是,如果您的程序可以按预期运行,并且如果用户无法意外破坏它,那么您可能不需要检查。