C#中static关键字

静态变量和静态方法

  1. 静态(static)变量

静态变量(类变量)是一种全局变量,它可以在各个对象实例间共享。

class ABCD
{
    char data;
    static int share_data;
}

class StaticDemo
{
    ABCD a,b,c,d;
}

上述4个对象a,b,c,d共同拥有静态变量share_data.

static变量的生存期不依赖于对象,其他类可以不通过实例化访问他们:

public class StaticVar
{
    public static int number = 5;
}

public class OtherClass
{
    public void Method()
    {
        int x = StaticVar.number; // here
    }
}

静态(static)方法

静态方法相当于C语言的全局函数,其他的类不用实例化即调用它,同静态变量一样。 

我们知道,全局变量分为实例变量(Instance Variable)和类变量(Static Variable)两种;同样,方法也可以分为实例方法和静态方法(加static关键字)两种。在使用变量时需要注意一下规则:

实例方法既可以使用实例变量,又可以使用类变量;
而静态方法只能使用类变量,不能直接使用实例变量。

  1. 当静态变量执行赋值操作时,变量的值为程序运行最后一次给变量赋值后的值
private void TestValue()
{
    static int num = 1;
    num++;
}

该方法第一次调用后num在内存中的值是2;第二次调用后值是3.

原文地址:https://www.cnblogs.com/fanyong/p/2753127.html