查看下面的代码
我的问题是:我没有初始化 eId
和 eName
的默认值,但属性仍然被初始化为默认值。
CLR 是这样做的吗?
class Employee
{
int _empId;
String _eName;
public Employee()
{
// I am not initializing the attributes here
}
public void Disp()
{
Console.WriteLine("Id:: {0} Name:: {1}", _empId, _eName);
}
}
class Program
{
static void Main(string[] args)
{
new Employee().Disp();
}
}
最佳答案
.NET 中的所有值和对象都有默认值。如果您不指定显式值,将使用默认值。
- 对于对象,默认值为
null
- 对于值类型,default value is 0 (或者对应于 0 的东西,比如
Guid.Emtpy
)
由于您没有使用值初始化您的字段,它们将获得默认值。
关于c# - 构造函数是初始化值还是 CLR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22627387/