类:
public class TestClassA
{
public TestClassA()
{
Console.WriteLine("我是在TestClassA中的TestClassA()构造函数中");
}
public TestClassA(string a, string b)
{
Console.WriteLine("我是在TestClassA中的TestClassA(string a, string b)构造函数中");
}
public TestClassA(string a)
: this(a, "b")
{
Console.WriteLine("我是在TestClassA中的TestClassA(string a): this(a, \"b\")构造函数中");
}
}
public class TestClassB : TestClassA
{
public TestClassB()
{
Console.WriteLine("我是在TestClassB中的TestClassB()构造函数中");
}
public TestClassB(string a, string b)
: base(a, b)
{
Console.WriteLine("我是在TestClassB中的TestClassB(string a, string b): base(a, b)构造函数中");
}
public TestClassB(string a)
: this(a, "b")
{
Console.WriteLine("我是在TestClassB中的TestClassB(string a, string b): this(a, \"b\")构造函数中");
}
}
实例:
Console.WriteLine("TestClassA Father1 = new TestClassA();运行结果:");
TestClassA Father1 = new TestClassA();
Console.WriteLine();
Console.WriteLine("TestClassA Father2 = new TestClassA(\"f2\", \"f2\");运行结果:");
TestClassA Father2 = new TestClassA("f2", "f2");
Console.WriteLine();
Console.WriteLine("TestClassA Father3 = new TestClassA(\"f3\");运行结果:");
TestClassA Father3 = new TestClassA("f3");
Console.WriteLine();
Console.WriteLine("TestClassB Son1 = new TestClassB();运行结果:");
TestClassB Son1 = new TestClassB();
Console.WriteLine();
Console.WriteLine("TestClassB Son2 = new TestClassB(\"s2\", \"s2\");运行结果:");
TestClassB Son2 = new TestClassB("s2", "s2");
Console.WriteLine();
Console.WriteLine("TestClassB Son3 = new TestClassB(\"s3\");运行结果:");
TestClassB Son3 = new TestClassB("s3");
Console.WriteLine();
结果:

分析:
this:调用的是本身,不能调用父类和子类的
base:调用父类的,不能调用本身的,但别人继承,可以调用
从中也可以得出另外个结果构造函数的运行过程 先从基类开始构造再到类本身
本博客内容有些来源于网络或书籍如果侵害到你的权益,请及时联系我(hch458458@vip.qq.com)
版权归nethch所有,转载请注明出处!
本文详细解析了C#中的构造函数,包括默认构造函数、带参数构造函数及使用this与base关键字进行继承时的构造函数调用,并通过实例展示了构造函数的执行流程。

977

被折叠的 条评论
为什么被折叠?



