我的问题是:我可以检查变量(字符串或int / double类型)或数组(字符串或int / double类型)是否在C#中初始化?
提前致谢。
答案 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)
扫描您的源代码并查找变量的所有用法和声明,以验证它是在声明时初始化,或者在使用之前保证在某处保证。