关于静态构造函数的困惑

wjn161 2009-09-04 10:08:48
书上说静态构造函数先于其他构造函数执行,常用于初始化。这个说得很抽象。
请高手指点下一般要什么样的情况下使用静态构造函数,以及他的用途,最好能有代码示例,非常感谢!
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gisyellow 2009-09-04
  • 打赏
  • 举报
回复
主要用于集中的对静态成员变量进行初始化
mb_1985 2009-09-04
  • 打赏
  • 举报
回复
说白了主要的用途就是初始化静态成员变量,说真的真没用多了这玩意
lzsh0622 2009-09-04
  • 打赏
  • 举报
回复
在现在面向对象的开发大环境下,静态是以前的经典(非面象对象)的用法.
为了便理解,可以反几个相关的放一块.

(1)静态变量:属于类,不属于对象。换句话对象中不能用。
(2)静态方法:不用创建类的实例,直接使用类的方法。换句话与对象无关。
(3)静态构造函数的作用:
a.初始化类的静态数据成员,在代码加载时执行;
b.程序中无法调用静态构造函数,此前的任何修饰符都是无效的;
c.静态构造函数,没有参数。

我的理解:传统的结构化编程思想的一些处理方式,不符合面向对象编程理论,又没有替代方法,保留下来,称之谓静态。一些老程序员应该更清楚。
wuyq11 2009-09-04
  • 打赏
  • 举报
回复
静态构造函数是实现对一个类进行初始化的方法成员。它一般用于对静态数据的初始化。静态构造函数不能有参数,不能有修饰符而且不能被调用,当类被加载时,类的静态构造函数自动被调用
一个类只能有一个静态构造函数。
静态构造函数不可以被继承。
类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者
引用类任何静态成员才激发静态构造函数
using System;
class A
{
public static int X;
static A()
{
X = B.Y + 1;
Console.WriteLine("static A()");
}
}
class B
{
public static int Y = A.X + 1;
static B()
{
Console.WriteLine("static B()");
}
static void Main()
{
Console.WriteLine("X = {0}, Y = {1}", A.X, B.Y);
Console.ReadLine();
}
}

wuyi8808 2009-09-04
  • 打赏
  • 举报
回复
静态构造函数是相对于类本身的,而不是相对于实例的。

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧