c# - 构造函数是初始化值还是 CLR?

标签 c# .net constructor clr

查看下面的代码

我的问题是:我没有初始化 eIdeName 的默认值,但属性仍然被初始化为默认值。

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/

相关文章:

c# - 什么 SQlite 数据类型映射到 clr 数据类型 double?

c# - 为什么在添加到按钮的 Click 事件时要创建一个新的 RoutedEventHandler?

c# - 为什么 .NET 中的原始类型用于引用程序集 System.Runtime 中的 metro 风格应用程序?

c# - 更改文本到语音语音的性别

.net - 如何检查一个对象是否属于某种类型

c# - 始终具有参数化构造函数的类

C# 将构造函数参数传递给私有(private)成员的目的是什么?

c# - 关于何时保存的设计问题

java - 操作对象、构造函数?

c++ - 这个 C++ 成员初始化行为是否定义良好?