日期:2014-05-20  浏览次数:20822 次

C# OOP的一个弱智问题 关于构造函数的
比如我有2个class
 class a{
public a(string x){}
}

class b:a
{
 public b(string x):base(x)
{
}
//这样的话 执行b会先执行a构造函数 然后再b的 有没有什么方法让他只执行b 不执行a
//java 里头 只要把super去了就可以 但是c#里 使用 :base()这种形式的 不知道怎么做的
}

------解决方案--------------------
引用:
比如我有2个class
C# code?123456789101112 class a{public a(string x){}} class b:a{ public b(string x):base(x){}//这样的话 执行b会先执行a构造函数 然后再b的 有没有什么方法让他只执行b 不执行a//java 里头 只要把super去了就可以 但是c#里 使用 :bas……


如果断点进去看就会发现,当程序进行到B的构造函数入口时,会先执行a的构造函数,执行完a的构造函数,才会接着进入b的构造函数进行执行,