有人可以解释,这种结构有什么意义吗?
public class A
{
public A(): this("..") {}
}
答案 0 :(得分:7)
: 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
的构造函数将调用B
的构造函数,该构造函数接受一个字符串并在那里传递"foo bar"
。
有关详细信息,请参阅C#编程指南的“Using constructors”部分。
答案 1 :(得分:3)
如果调用无参数构造函数,它将调用接受单个字符串的构造函数,并传递".."
。在你的情况下,虽然没有这样的构造函数,所以代码不会编译。