c#对象初始化器
本文关键字:初始化 对象 | 更新日期: 2023-09-27 18:11:29
我试图理解一些代码为我的编程考试,我偶然发现了这个符号,我似乎无法找到解释。我已经搜索了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 -没有类似的代码。有人能帮忙吗?提前感谢!
这与对象初始化器无关。这是关于构造函数链。当任何方法(包括构造函数)具有这样的this(...)
时,您所说的是作为具有类似签名的重载的第一个调用,因此在您的情况下,this("b")
将首先调用这个变量:public A(string i)
。完成这个调用之后,特定构造函数中的实际工作就完成了,在示例Console.WriteLine("c");
中。