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

请举例说明一下:谢谢了.... 请举例说明一下:

谢谢了.
展开
 我来答
yanshl
2008-12-11 · TA获得超过412个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:259万
展开全部
静态构造函数是最早被调用的,只要有静态访问,那么就先调用静态构造函数。其他非静态构造函数会在调用完毕静态的成员之后才被调用。

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

例如:

private static GoodsManager s_Instance;

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

在访问类的静态成员的时候,系统会最先调用静态构造函数static GoodsManager(),在构造函数中初始化了静态变量。
cyou0
2008-12-12 · TA获得超过1840个赞
知道小有建树答主
回答量:1614
采纳率:0%
帮助的人:965万
展开全部
静态的不需要被实例化,非静态的需要被实例化

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

非静态的:
classA a = new classA(); //实例化的时候被调用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AI2D
2008-12-12
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
静态方法与变量都是全局的,假如你定义静态变量 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。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangziyi129
2008-12-11 · TA获得超过1387个赞
知道小有建树答主
回答量:1492
采纳率:100%
帮助的人:0
展开全部
小例子
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();
也就是说 他们执行的条件不一样
接分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
容莎0Ek
2008-12-11 · 超过23用户采纳过TA的回答
知道答主
回答量:210
采纳率:0%
帮助的人:0
展开全部
msdn 里 自己查, 那里解释的狠详细
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式