基本构造函数(c#)的MSDN页面上出现错误

基本构造函数(c#)的MSDN页面上出现错误,c#,constructor,base,C#,Constructor,Base,我认为下一页关于构造函数和在下一段之后调用基本构造函数的内容有一个错误: “在上一个示例中使用this关键字会导致调用此构造函数:” 难道不是这样吗 public Employee(int weeklySalary, int numberOfWeeks) { salary = weeklySalary * numberOfWeeks; } 有人能证实吗?非常感谢不,它向您展示了构造函数的源代码是由this(weeklySalary*numberOfWeeks)调用的。。。这是一个单参数构造函数

我认为下一页关于构造函数和在下一段之后调用基本构造函数的内容有一个错误:

“在上一个示例中使用this关键字会导致调用此构造函数:”

难道不是这样吗

public Employee(int weeklySalary, int numberOfWeeks)
{
salary = weeklySalary * numberOfWeeks;
}

有人能证实吗?非常感谢

不,它向您展示了构造函数的源代码是由
this(weeklySalary*numberOfWeeks)
调用的。。。这是一个单参数构造函数,它只分配给
salary
变量

把代码想象成这样:

// Constructor X
public Employee(int weeklySalary, int numberOfWeeks)
    : this(weeklySalary * numberOfWeeks)
{
}

// Constructor Y
public Employee(int annualSalary)
{
    salary = annualSalary;
}
然后,文档如下所示:

构造函数X中的表达式
this(weeklySalary*numberOfWeeks)
表示对构造函数Y的链式调用


不,文件是准确的。想象一下,2参数构造函数就像一个调用方法主要实现的方法重载

2参数构造函数

public Employee(int weeklySalary, int numberOfWeeks)
    : this(weeklySalary * numberOfWeeks)
{
}
真正调用先前定义的1参数构造函数,其中
annualSalary
参数是
weeklySalary*numberOfWeeks
的计算值

public Employee(int annualSalary)
{
    salary = annualSalary;
}

否-因为它将在每周*数周内找到一个接受单个INT的构造函数,这是另一种方法,但文档如果正确的话。在我看来,这是最好的方式。谢谢!这就解释了为什么要回答很多问题
public Employee(int annualSalary)
{
    salary = annualSalary;
}