我正在看C#课程,一部分代码引起了我的注意,而本教程中没有对此进行解释。
Public Product(int productId, string productName, string description) : this()
{
this.ProductId = productId;
this.ProductName = productName;
this.description = description;
}
:this()
在构造函数中意味着什么?
答案 0 :(得分:0)
:
表示初始化列表的开始。 this()
调用默认构造函数Product()
,该构造函数可以隐式或显式定义。
如果定义了一个带有一个或多个参数的构造函数,则没有隐式定义默认构造函数。
只有在同一类中显式定义了默认构造函数Product(int productId, string productName, string description)
时,您的示例构造函数Product()
才会编译,因为在这种情况下不会隐式定义默认构造函数Product()
。>
在执行Product()
主体中的代码之前,将调用显式定义的构造函数Product(int productId, string productName, string description)
。如果Product()
为空(并且没有初始化程序列表),则不会执行任何操作。