C#中,静态的构造函数跟非静态的有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/05/15 01:53:49
请举例说明一下:

谢谢了.

静态构造函数是最早被调用的,只要有静态访问,那么就先调用静态构造函数。其他非静态构造函数会在调用完毕静态的成员之后才被调用。

所以一般静态构造函数用来为静态成员初始化,或者作为单件模式中创建对象的唯一入口。

例如:

private static GoodsManager s_Instance;

public static GoodsManager Instance
{
get{return s_Instance;}
}
static GoodsManager()
{
s_Instance = new GoodsManager();
}
private GoodsManager()
{ }

在访问类的静态成员的时候,系统会最先调用静态构造函数static GoodsManager(),在构造函数中初始化了静态变量。

小例子
class a
{
a()
{Console.write("我是a的构造函数");}
}
class b
{
static int bbb;
static b()
{Console.write("我是static b 的构造函数")}
}
A a=new A()
执行完这句 程序会自动执行 a();
b.bbb=5;
执行完这句 程序会自动执行 b();
也就是说 他们执行的条件不一样
接分

静态方法与变量都是全局的,假如你定义静态变量 int i = 10; 那么你的程序就只有这一个i变量:

class
{ static int i = 10; }

class.i = 100;

而非静态的就是面向对象型的,假如你定义非静态变量 int i = 10; 你必须通过创建对象创建i变量:

clas