一道关于实例化顺序的C#面试题
2013-06-16 10:37
573 查看
转自http://kb.cnblogs.com/page/104476/
最后的问题是:请写出Main()方法中,a1-a5,b1-b5这十个类实例化的顺序。(MyTest类是我自己添的,方便查看结果,原题是是实例化一个object类。)
这个答对了。
C#里没有接触,倒是在JAVA里看过
类的加载及初始化
静态构造块(静态属性,主要功能是为类的对象共享),静态构造函数(静态构造函数只在类对象第一次创建实例时执行,多是为静态属性赋初值),构造块,构造函数
所以上面的答案是
1 b1 B类的 静态构造块
2 b3 [b]B类的 静态构造方法
3 b2 B类的 构造块
4 a1 A类的 静态构造块,这里是执行B类的构造方法,我们知道,要先执行父类的初始化,再执行本类的构造方法,4-7是A类的初始化。
5 a3 [b]A类的 静态构造方法[/b]
6 a2 A类的 构造块
7 a4 A类的 构造方法
8 b4 B类的 构造方法
9 b5 B类的 Myfun方法。[/b]
public class BaseA { public static MyTest a1 = new MyTest("a1"); public MyTest a2 = new MyTest("a2"); static BaseA() { MyTest a3 = new MyTest("a3"); } public BaseA() { MyTest a4 = new MyTest("a4"); } public virtual void MyFun() { MyTest a5 = new MyTest("a5"); } } public class BaseB : BaseA { public static MyTest b1 = new MyTest("b1"); public MyTest b2 = new MyTest("b2"); static BaseB() { MyTest b3 = new MyTest("b3"); } public BaseB() { MyTest b4 = new MyTest("b4"); } public new void MyFun() { MyTest b5 = new MyTest("b5"); } } static class Program { static void Main() { BaseB baseb = new BaseB(); baseb.MyFun(); } } public class MyTest { public MyTest(string info) { Console.WriteLine(info); } }
最后的问题是:请写出Main()方法中,a1-a5,b1-b5这十个类实例化的顺序。(MyTest类是我自己添的,方便查看结果,原题是是实例化一个object类。)
这个答对了。
C#里没有接触,倒是在JAVA里看过
类的加载及初始化
静态构造块(静态属性,主要功能是为类的对象共享),静态构造函数(静态构造函数只在类对象第一次创建实例时执行,多是为静态属性赋初值),构造块,构造函数
所以上面的答案是
1 b1 B类的 静态构造块
2 b3 [b]B类的 静态构造方法
3 b2 B类的 构造块
4 a1 A类的 静态构造块,这里是执行B类的构造方法,我们知道,要先执行父类的初始化,再执行本类的构造方法,4-7是A类的初始化。
5 a3 [b]A类的 静态构造方法[/b]
6 a2 A类的 构造块
7 a4 A类的 构造方法
8 b4 B类的 构造方法
9 b5 B类的 Myfun方法。[/b]
这里有个无关的小知识点。
public new void MyFun()
new 修饰符 在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员
相关文章推荐
- 一道关于实例化顺序的C#面试题
- 【转摘】一道关于实例化顺序的C#面试题
- 一道关于实例化顺序的C#面试题
- 一道关于实例化顺序的C#面试题
- 一道关于实例化顺序的C#面试题
- 解析关于实例化顺序的C#面试题
- 解析关于实例化顺序的C#面试题
- 关于一道面试题,使用C#实现字符串反转算法
- 一道关于try,finally执行顺序的面试题
- 关于一道面试题,使用C#实现字符串反转算法
- 关于一道面试题,使用C#实现字符串反转算法
- 一道关于try,finally执行顺序的面试题
- 一道关于静态变量的初始化顺序面试题
- 一道关于C#参数传递的面试题分析
- 一道关于try,finally执行顺序的面试题
- 关于int,String,char的一道面试题
- 关于ssh的一道面试题
- 关于一道JS面试题的思考
- 一道关于位段及大小端的面试题
- 7期同学12月5日的上机问题总结【C#类中成员实例化的执行顺序】