在构造函数中使用“this”是什么意思
本文关键字:this 是什么 意思 构造函数 | 更新日期: 2023-09-27 18:31:42
有人可以解释一下,这种结构有什么意义吗?
public class A
{
public A(): 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# 编程指南的"使用构造函数"部分。
如果调用无参数构造函数,它将调用接受单个字符串的构造函数,传递".."
. 在您的情况下,没有这样的构造函数,因此代码无法编译。