.Net C#语法 构造函数中this和base

来源:互联网 发布:linux 迅雷 编辑:程序博客网 时间:2024/06/10 06:19

类:

    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所有,转载请注明出处!