【发布时间】:2017-06-15 18:38:20
【问题描述】:
我的问题是为什么我们需要检查 string[] 中的空错误。 不是string类型默认可以接受null值吗?那么为什么我们应该使用 Null 条件运算符 token(?) 检查字符串 [] 是否包含 null。
例如看看这个方法:
来自《C# and 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.");
【问题讨论】:
-
在这种情况下,我们不是检查字符串数组是否包含空值,而是检查数组是否为空值。如果我们不进行检查,
args.Length将失败,因为这将转换为null.Length -
因为
string和string[]是不同的东西。两者都可以是null。如果您尝试从空引用中读取.Length,您将获得NullReferenceException -
这里的重复标志是可怕的错误。
-
注意:上面的代码不检查数组是否包含空字符串。它正在检查数组 is null
标签: c#