C# Constructors
constructor 的名字与 class 一样,没有返回值。
可以有多个参数不同的 constructors。其中没有参数的 constructor 是 default constructor。
non-static class 如果没有定义任何 constructors, compiler 会生成一个 public default constructor。
class A {}
class B
{
public B(int i) {}
}
static void Main()
{
var a = new A(); // compiler 自动生成 A() constructor
var b = new B(); // Error, 因为不存在 B() constructor
var b1 = new B(1); // 使用 B(int i) constructor
}
constructor 可以通过 this
调用另一个 constructor。此 constructor 的参数可以传给 this
使用。
public Employee(int weeklySalary, int numberOfWeeks)
: this(weeklySalary * numberOfWeeks) // this 指向 Employee(long n)
constructor 如果只有一个语句,可以使用 expression body definitions
Private Constructors
Private Constructors 阻止实例化。
class NLog
{
// Private Constructor:
private NLog() { }
public static double e = Math.E; //2.71828...
}