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 -没有类似的代码。有人能帮忙吗?提前感谢!

c#对象初始化器

这与对象初始化器无关。这是关于构造函数链。当任何方法(包括构造函数)具有这样的this(...)时,您所说的是作为具有类似签名的重载的第一个调用,因此在您的情况下,this("b")将首先调用这个变量:public A(string i)。完成这个调用之后,特定构造函数中的实际工作就完成了,在示例Console.WriteLine("c");中。