我刚刚尝试了一个小代码片段,以了解值类型初始化的工作原理。 下面是代码片段C#中值类型的奇怪行为
public MainWindow()
{
InitializeComponent();
int num;
char alpha;
//if (num == null)
//{
// // this is null
//}
//else
//{
// string value = num.ToString();
//}
}
一些代码注释故意正确生成项目。汇编即将到来的是
Use of unassigned local variable 'num'
我知道所有的变量应该在使用前分配。但是当我调试时发现num的值为0.如果这是默认初始化为0,那么为什么我们需要在使用它之前始终分配一些值。
会不会是一个nullable
类型我明白使用未分配变量的风险将通过异常。
现在假设我想使用已经可用的num的零值而没有任何赋值,为什么我必须初始化num?有人可以说这就是.NET/C#的工作原理。但是背后肯定有一些强有力的理由。你能说出这个理由吗?