关于c#静态构造函数

发布于 2014-09-29  694 次阅读


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



点击数:132


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。