在c#程序中,这个代码的执行顺序是什么呢,底下已经给出了两部,可是后边的顺序应该是什么呢,因为有这
在c#程序中,这个代码的执行顺序是什么呢,底下已经给出了两部,可是后边的顺序应该是什么呢,因为有这个this,所以不会了...
在c#程序中,这个代码的执行顺序是什么呢,底下已经给出了两部,可是后边的顺序应该是什么呢,因为有这个this,所以不会了
展开
展开全部
这个冒号就相当于基于什么,也就是说必须后面的先完成,前面的才能继续。
这里的this就是调用本身的另一个构造函数,base就是调用基类的构造函数。
所以MyDerivedClass()晚于MyDerivedClass(int,int)晚于base(int),base就是基类,在这里,基类是MyBaseClass,而MyBaseClass中,继承自object,因此,MyBaseClass的构造函数要晚于Object的。
因此,先执行Object()构造函数
然后执行MyBaseClass(int i)构造函数
然后执行MyDerivedClass(int i,int j)构造函数
然后执行MyDerivedClass()构造函数
这样就创建了一个MyDerivedClass对象。
这里的this就是调用本身的另一个构造函数,base就是调用基类的构造函数。
所以MyDerivedClass()晚于MyDerivedClass(int,int)晚于base(int),base就是基类,在这里,基类是MyBaseClass,而MyBaseClass中,继承自object,因此,MyBaseClass的构造函数要晚于Object的。
因此,先执行Object()构造函数
然后执行MyBaseClass(int i)构造函数
然后执行MyDerivedClass(int i,int j)构造函数
然后执行MyDerivedClass()构造函数
这样就创建了一个MyDerivedClass对象。
更多追问追答
追问
还是没明白后边两句,为什么带参数的在前
我现在是不明白为什么先调有base的那行,再掉有this这个,说错了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询