您的位置:首页 > 其它

类型构造器与实例构造器

2014-07-15 13:26 246 查看
比较实例构造器和类型构造器的区别,类型构造器必须是static,并且不允许定义访问修饰符,类型构造器只能被执行一次。:

class mybaseclass
{
public mybaseclass()
{
Console.WriteLine("基类实例构造器");
}
static mybaseclass()//类型构造器不允许出现访问修饰符
{
Console.WriteLine("基类类型构造器");
}
public void test()//这里如果是private/protected,派生类就无法访问
{
Console.WriteLine("测试动作");
}
}
class testClass:mybaseclass
{
public testClass()
{
Console.WriteLine("派生类实例构造器");
}
static  testClass()
{
Console.WriteLine("派生类的类型构造器");
}
}


如果执行以下代码,请猜测输出结果:

class Program
{
static void Main(string[] args)
{
testClass mytestclass = new testClass();
mytestclass.test();

testClass mytestClass2 = new testClass();
mytestClass2.test();

}

}


输出结果如下:

当执行mytestclass时,输出如下顺序:

派生类的类型构造器

基类的类型构造器

基类的实例构造器

派生类的实例构造器

测试动作


当执行mytestclass2时,输出如下顺序:

基类的实例构造器

派生类的实例构造器

测试动作


从上面的结果可以看出,类型构造器先与实例构造器执行,类型构造器只执行一次。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: