从:this()继承意味着什么?

时间:2019-04-12 17:05:55

标签: c#

我正在看C#课程,一部分代码引起了我的注意,而本教程中没有对此进行解释。

Public Product(int productId, string productName, string description) : this()
{
    this.ProductId = productId;
    this.ProductName = productName;
    this.description = description;
}

:this()在构造函数中意味着什么?

1 个答案:

答案 0 :(得分:0)

:表示初始化列表的开始。 this()调用默认构造函数Product(),该构造函数可以隐式或显式定义。

如果定义了一个带有一个或多个参数的构造函数,则没有隐式定义默认构造函数。

只有在同一类中显式定义了默认构造函数Product(int productId, string productName, string description)时,您的示例构造函数Product()才会编译,因为在这种情况下不会隐式定义默认构造函数Product()

在执行Product()主体中的代码之前,将调用显式定义的构造函数Product(int productId, string productName, string description)。如果Product()为空(并且没有初始化程序列表),则不会执行任何操作。