在构造函数中使用“this”是什么意思

本文关键字:this 是什么 意思 构造函数 | 更新日期: 2023-09-27 18:31:42

有人可以解释一下,这种结构有什么意义吗?

public class A
{
    public A(): this("..") {}
}

在构造函数中使用“this”是什么意思

构造函数调用具有指定参数的另一个构造函数之后: this(…)。例如:

public class A
{
    public A (string foo)
    {
        Console.WriteLine(foo);
    }
    public A () : this("foo bar")
    {}
}

这将允许您创建一个 A 对象并传递一个字符串来自定义其输出;或者您可以在没有参数的情况下调用它,这会导致调用第二个构造函数,该构造函数本身调用第一个构造函数,并以 "foo bar" 作为参数。

还有一个类似的关键字,当A从其他类继承时使用。在这种情况下,可以使用 base 而不是 this 直接从基类调用构造函数:

public class A : B
{
    public A () : base("foo bar")
    {}
}

因此,当您现在创建一个 A 的对象时,A 的构造函数将调用接受字符串并将"foo bar"传递给那里的 B 构造函数。

有关更多信息,请参见 C# 编程指南的"使用构造函数"部分。

如果调用无参数构造函数,它将调用接受单个字符串的构造函数,传递".." . 在您的情况下,没有这样的构造函数,因此代码无法编译。