为什么我总是需要在实际使用字符串变量进行比较之前先给它赋一个值。
例如:
一些输入 - obj
我遇到了编译时错误,类似于“无法使用未分配的变量'temp'”。但是字符串变量的默认值为“null”,我想要使用它。那么为什么不允许这样做呢?
string temp;
if (obj== null)
{
temp = "OK";
}
string final = temp;
我遇到了编译时错误,类似于“无法使用未分配的变量'temp'”。但是字符串变量的默认值为“null”,我想要使用它。那么为什么不允许这样做呢?
default(T)
,在这种情况下是null
。但是对于C#程序员来说,两者都不可观察。 - H Hdefault(T)
(或null
),您需要首先使用显式命令检索此值,然后才能分配它。在实践中,从C#生成的IL从不这样做。虽然您可能认为已声明变量,但IL通常直到具有明确值可分配之前才声明它。 - GregRos