如何检查变量或数组是否在C#中初始化

时间:2010-07-06 18:19:17

标签: c#

我的问题是:我可以检查变量(字符串或int / double类型)或数组(字符串或int / double类型)是否在C#中初始化?

提前致谢。

6 个答案:

答案 0 :(得分:6)

您可以保证一些类型的初始化。对于任何静态或实例成员,所有变量在构造类型或实例时都会自动初始化,无论是显式还是隐式(在这种情况下default(Type)是值,因此对于数字类型为0,对于字符串为null和其他参考类型等。)。

对于局部变量,它们在声明之前不能使用,所以如果你可以检查它,它已被初始化。

答案 1 :(得分:2)

是的,你可以。

对于需要实例的类型(字符串或数组,如您所知),您可以验证它们是否为空。

你可以通过多种方式做到这一点,但有一种方法是:

if (myObject == null)
{
    //initialize it here
}

原始数据类型不需要实例化。例如:

int i;

不等于null,它将等于0.

答案 2 :(得分:1)

试试这个,:

If var = NULL Then
MsgBox ('Not initialized')
End If

答案 3 :(得分:1)

C#要求在读取之前将所有变量初始化为某个值。

代码块:

int i;
if(i == 0)
{
  // something...
}

将生成编译时错误,因为您在分配之前尝试访问i的值。这也适用于对象(尽管您可以将它们初始化为null)。

如果您想知道自己是否已从初始分配中修改过,那么除非初始分配是针对后续分配不会重复的标记值,否则无法直接告知。如果不是这种情况,则需要额外bool来跟踪。

答案 4 :(得分:0)

没有。但是,如果它是局部变量,则会出现编译器错误。如果它是一个类成员,那么它会自动初始化为默认值(0表示int,null表示对象等)

答案 5 :(得分:0)

舌头,但准确的回答

扫描您的源代码并查找变量的所有用法和声明,以验证它是在声明时初始化,或者在使用之前保证在某处保证。