【发布时间】:2013-06-19 18:30:29
【问题描述】:
我刚刚尝试了一个小代码 sn-p 来看看值类型初始化是如何工作的。 下面是代码sn-p
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# 的工作方式。但这背后一定有一些强有力的理由。能说说这个原因吗?
【问题讨论】:
标签: c# .net types unassigned-variable