C#静态static的用法实例分析

2019-12-26 12:30:36于丽

5、在静态方法中,不能直接调用实例成员,因为静态方法被调用的时候,对象还有可能不存在。

6、this/base 关键字在静态方法中不能使用,因为有可能对象还不存在。

7、可以创建这个类的对象,制定对象的成员在静态方法中操作。

8、在实例方法中,可以调用静态成员,因为这个时候静态成员肯定存在。

9、非静态类可以包含静态的方法、字段、属性或事件;
10、无论对一个类创建多少个实例,它的静态成员都只有一个副本;
11、静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量;
12、静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员;
13、虽然字段不能声明为 static const,但 const 字段的行为在本质上是静态的。这样的字段属于类,不属于类的实例。

三、静态方法

静态方法是不属于特定对象的方法,

静态方法可以访问静态成员变量,

静态方法不可以直接访问实例变量,可以在实例函数调用的情况下,实例变 量做为参数传给静态方法。

静态方法也不能直接调用实例方法,可以间接调用,首先要创建一个类的实例,然后通过这一特定对象来调用静态方法。

四、静态构造函数

1:静态类可以有静态构造函数,静态构造函数不可继承;
2:静态构造函数可以用于静态类,也可用于非静态类;
3:静态构造函数无访问修饰符、无参数,只有一个 static 标志;
4:静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且只执行一次。

例如

 

复制代码 class Program
{
        public static int i =0;
        public Program()
        {
            i = 1;
            Console.Write("实例构造方法被调用");
        }