您的位置:首页 > 编程语言 > C#

说说C#的静态构造函数

2007-09-04 16:07 225 查看
首先需要明确一个想法:

静态成员属于类,而不属于实例;(需要用类名来调用)
非静态成员属于实例,而不属于类;(需要用实例名来调用)
静态函数中不能包含非静态成员;
非静态函数中可以包含静态成员;

OK Let's go!
对于普通构造函数,我们在用new建立该类实例时调用它(重载构造函数是不错的想法)
那么什么时候用到静态构造函数呢?
当你要初始化类中的静态变量时就要选择它了!(需要创建多个实例的情况尤为重要)
如果没有写静态构造函数,而类中包含带有初始值设定的静态成员,那么编译器会自动生成默认的静态构造函数。

那么你怎么调用自己编写的静态构造函数呢?
答案是你不能!
因为它在创建第一个实例或第一次引用任何静态成员之前,由.Net自动调用了(无须你动手啦),并且只执行一次。当你创建第二个实例或第二次引用任何静态成员时.Net就不会再调用该静态构造函数了

class SimpleClass
{
static SimpleClass()
{}
public SimpleClass()
{}
public SimpleClass(string formatStr)
{}
}

在使用静态构造函数的时候有几点需要注意:

1、静态构造函数既没有访问修饰符,也没有参数。因为是.Net调用的,所以像public和private等修饰符没有意义,并且你怎么给.Net调用的函数传参呢?

2、一个类只能有一个静态构造函数,并且不能被继承。

3、无参数的普通构造函数可以与静态构造函数共存。尽管参数列表相同,但一个属于类,一个属于实例,所以不会冲突。

就想到这么多
所以先写这么多
以后想到再补充吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: