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

请举例说明一下:

谢谢了.

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

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

例如:

private static GoodsManager s_Instance;

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

在访问类的静态成员的时候,系统会最先调用静态构造函数static GoodsManager(),在构造函数中初始化了静态变量。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-12
静态的不需要被实例化,非静态的需要被实例化

静态的:classA.classA(); //直接被调用了

非静态的:
classA a = new classA(); //实例化的时候被调用了
第2个回答  2008-12-12
静态方法与变量都是全局的,假如你定义静态变量 int i = 10; 那么你的程序就只有这一个i变量:

class
{ static int i = 10; }

class.i = 100;

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

class
{ int i = 10; }

class object1st = new class();
object1st.i = 100;

通过创建不同的object你就能得到很多的i。
第3个回答  2008-12-11
小例子
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();
也就是说 他们执行的条件不一样
接分
第4个回答  2008-12-11
msdn 里 自己查, 那里解释的狠详细

C#中,静态的构造函数跟非静态的有什么区别?
静态构造函数是最早被调用的,只要有静态访问,那么就先调用静态构造函数。其他非静态构造函数会在调用完毕静态的成员之后才被调用。所以一般静态构造函数用来为静态成员初始化,或者作为单件模式中创建对象的唯一入口。例如:private static GoodsManager s_Instance;public static GoodsManager Instance { get{r...

C#中,静态类和非静态类的区别是什么?
静态类和非静态类的区别 静态类和非静态类的主要区别: 主要区别在于静态类不能实例化,静态类编译器能够执行检查确保不是偶然的添加实例成员,C#编译器会自动把它标记为sealed,静态类中不能创建非静态的方法,即静态方法中只能创建静态方法,但在非静态类中可以调用静态方法。 静态类的主要特性: ...

C#中static型变量和非static型变量有何不同
用static关键字符标识的程序元素是静态的,不用static标识的程序元素是非静态.两者的区别在于:静态的东西是在类型加载初始时初始化的,并且与类相关.非静态东西一般放在实例的构造函数中初始化,它是与特定类的实例相关的.

静态方法和非静态方法的区别是什么
六、使用不同:1、静态方法属于类所有,类实例化前即可使用。2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员。3、因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存,static内部只能出现static变量和其他static方法!而且static方法中还不能使用thi...

C# 面向对象 静态类和静态成员
在C#中,静态类和静态成员是面向对象编程中的重要概念。它们与非静态成员不同,静态成员属于类型本身而非特定对象,且不能通过实例引用。静态类不能实例化,只能通过类名直接访问其成员,如常数和类型声明。静态类可以有静态构造函数,在程序启动时或类被实例化前执行。静态成员的特点包括:仅包含静态方法...

c# 程序里 什么时候应该用静态方法 什么时候用非静态方法
你就自己知道在什么时候用了。静态的方法就在在程序启动的时候,系统自己建立一个该方法的实例在内存里面,不需要我们在手动去实例该方法,可以直接调用,还有就是该实例会在内存中占一定的内存空间,这个内存空间只要程序不退出就会一直占用,所以在内存比较小的时候尽量少用静态方法,...

在C#中静态函数和实例函数的区别?
静态变量 静态对象 静态函数和非静态函数的区别。(我的理解,大家看看对不对)先明确一下语言:asp.net C#1、静态变量:static string str1 = "1234";2、静态对象static SqlConnection cn = new SqlConnection();3、静态函数class aa{public static string test(string str){return str & "111";...

静态成员和非静态成员的区别
非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内容中..一个类中也可以包含静态成员和非静态成员,类中也包括静态构造函数和非静态构造函数..对于...

关于C#中的静态构造函数和静态成员
首先说一下理论:静态构造函数是实现一个类进行初始化方法成员。它一般对于静态函数初始化。静态构造函数不能有参数(意味着不能被重载),不能有修饰符(静态构造器永远是私有的所以不能有修饰符)不能被调用,当类被加载时类的静态构造函数被自动调用。用static关键字声明 静态构造函数的运行准则:1、...

c#中几种函数的区别
1.公共静态函数,是类方法而不是实例方法,其它类可以访问该函数,访问该函数不需要实例化对象.2.对象实例的公共方法,其它对象可以访问此方法.3.私有静态方法,仅类内部使用,外部不访问.Public 公共成员 Private 私有成员 没有注明关键字.net预设为私有成员 有返回值的成员习惯称为函数。无返回值的成员...

相似回答