我知道这应该是一个非常简单的问题,但是一段时间以来我一直在为这个概念而苦苦挣扎。
我的问题是,如何在C#中链接构造函数?
我在第一门OOP课上,所以我正在学习。我不了解构造函数链接的工作方式或实现方式,甚至不为什么比不进行链接的构造函数更好。
我希望得到一些带有解释的示例。
那么如何链接它们呢? 我知道有两个:
public SomeClass this: {0} public SomeClass { someVariable = 0 }
但是,您如何用三个,四个等等来做呢?
同样,我知道这是一个初学者的问题,但是我很难理解这一点,我也不知道为什么。
您可以使用标准语法(使用this类似方法的方法)在类 内部 选择重载:
this
class Foo { private int id; private string name; public Foo() : this(0, "") { } public Foo(int id, string name) { this.id = id; this.name = name; } public Foo(int id) : this(id, "") { } public Foo(string name) : this(0, name) { } }
然后:
Foo a = new Foo(), b = new Foo(456,"def"), c = new Foo(123), d = new Foo("abc");
另请注意:
base(...)
base()
对于“为什么?”:
SomeBaseType(int id) : base(id) {...}
请注意,您也可以以类似的方式使用对象初始化程序(无需编写任何内容):
SomeType x = new SomeType(), y = new SomeType { Key = "abc" }, z = new SomeType { DoB = DateTime.Today };