我正在尝试理解我的编程考试的一些代码,我偶然发现了这个符号,我似乎无法找到解释。 我搜索过stackoverflow,msdn和几个在线教程,但没有运气。
代码是这样的:
class A
{
public A(): this("b")
{
Console.WriteLine("c");
}
public A(string i)
{
Console.WriteLine(i);
}
}
class B : A
{
public B()
{
Console.WriteLine("a");
}
---------------
static void Main(string[] args)
{
A b = new A();
}
}
据推测,这打印出“bc”,但我甚至无法理解继承和所有。我不知道这里的符号是什么:
public A(): this("b")
{
Console.WriteLine("c");
}
我发现远程类似的唯一东西是对象初始化器,但只在一个在线教程中。检查MSDN为他们 - 没有相似的代码。有人能帮忙吗?提前谢谢!
答案 0 :(得分:2)
这与对象初始化器无关。它约为constructor-chaining。当任何方法(包括构造函数)都具有这样的this(...)
时,你所说的第一次调用具有类似signatur的重载,所以在你的情况下this("b")
将首先调用这个ctor:{{1 }}。完成此调用后,在您的示例public A(string i)
中完成该特定构造函数中的实际工作。