读书人

关于结构函数的this和base

发布时间: 2014-05-11 16:23:20 作者: rapoo

关于构造函数的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()这个方法就知了呀。我想肯定是不会进去的。书上写错了吧
[解决办法]
楼主买到盗版印刷的书了吧

读书人网 >C#

热点推荐