http://baike.baidu.com/view/2634573.htm?fr=aladdin
在百科上看到C#的新特性静态构造函数,其中提到静态构造函数“不能继承” 今天做了个试验,发现实际上静态构造函数是可以继承的,代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 静态构造函数 { public class Parent { protected static int var1; static Parent() { var1 = 100; } } public class Child:Parent { public int GetVar1() { return var1; } } class Program { static void Main(string[] args) { Console.WriteLine(new Child().GetVar1()); Console.ReadKey(); } } }
运行结果显示100 说明虽然是父类的静态构造函数 但是在创建子类实例前这个静态构造函数也被调用过了
另外一种情况是带有static修饰的类,因为同时被定义为sealed,也就是静态类,是不能被继承的,因而也无所谓它的静态构造函数是否能继承了。
本文通过实验展示了C#中静态构造函数的实际继承行为,与理论存在差异,并提供了相关代码示例。
2327

被折叠的 条评论
为什么被折叠?



