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,也就是静态类,是不能被继承的,因而也无所谓它的静态构造函数是否能继承了。