如果我们没有声明构造函数,编译器会为我们创建一个构造函数 -隐式构造函数。
它的具体作用是什么?我一直认为隐式构造函数将实例的成员初始化为一些默认值(例如strings
to null
、integers
to 0
、booleans
to false
)
但根据文档:
字段在调用对象实例的构造函数之前立即初始化。如果构造函数分配字段的值,它将覆盖字段声明期间给出的任何值。
那么,隐式构造函数的目的到底是什么?只是一个促进实例创建的幕后机制?
\n\n那么,隐式构造函数的目的到底是什么?只是一个促进实例创建的幕后机制?
\n
是的。它的(唯一)目的是允许您编写而var x = new MyObject()
不必创建空的 public\xc2\xb9 构造函数public MyObject() : base() { }
。
“隐式构造函数”的正式名称是default instance constructor,它在 C# 规范的第 14.11.5 节中有详细描述:
\n\xc2\xb9 默认构造函数的可见性为public
,除非类为abstract
,在这种情况下默认构造函数为protected
。
归档时间: |
|
查看次数: |
1133 次 |
最近记录: |