首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于结构函数的this和base

2014-05-11 
关于构造函数的this和base下面这段代码的构造函数执行顺序为什么是这样的?前面三步我可以理解,为什么会执

关于构造函数的this和base
下面这段代码的构造函数执行顺序为什么是这样的?前面三步我可以理解,为什么会执行第4步?
    1.执行System.Object.Object构造函数。
    2.执行MyBaseClass.MyBaseClass(int i)构造函数。
?  3.执行MyDerivedClass.MyDerivedClass(int i, int j)构造函数。
?  4.执行MyDerivedClass.MyDerivedClass()构造函数
基类


public class MyBaseClass
{
    public MyBaseClass()
    {
        // ...
    }
    public MyBaseClass(int i)
    {
        // ...
    }
}

继承类

public class MyDerivedClass : MyBaseClass 

    public MyDerivedClass() : this(5, 6)
    {
        // ... 
    } 
    public MyDerivedClass(int i) 
    { 
        // ... 
    } 
    public MyDerivedClass(int i, int j) : base(5)
    { 
        // ... 
    }
}

用下面方法实例化

MyDerivedClass myObj = new MyDerived(2, 4);

[解决办法]
引用:
下面这段代码的构造函数执行顺序为什么是这样的?前面三步我可以理解,为什么会执行第4步?
    1.执行System.Object.Object构造函数。
    2.执行MyBaseClass.MyBaseClass(int i)构造函数。
?  3.执行MyDerivedClass.MyDerivedClass(int i, int j)构造函数。
?  4.执行MyDerivedClass.MyDerivedClass()构造函数
基类

public class MyBaseClass
{
    public MyBaseClass()
    {
        // ...
    }
    public MyBaseClass(int i)
    {
        // ...
    }
}

继承类

public class MyDerivedClass : MyBaseClass 

    public MyDerivedClass() : this(5, 6)
    {
        // ... 
    } 
    public MyDerivedClass(int i) 
    { 
        // ... 
    } 
    public MyDerivedClass(int i, int j) : base(5)
    { 
        // ... 
    }
}

用下面方法实例化

MyDerivedClass myObj = new MyDerived(2, 4);


你直接断点调试看看有没有进入到 MyDerivedClass()这个方法就知了呀。我想肯定是不会进去的。书上写错了吧
[解决办法]
楼主买到盗版印刷的书了吧

热点排行