c#中静态字段与非静态字段有什么区别

c#中静态字段与非静态字段有什么区别
2025-06-21 23:41:36
推荐回答(2个)
回答1:

c#中静态字段和非静态字段以static标识区分,主要区别是静态字段可以直接以类名.字段名方式使用,而非静态字段必须创建类实例才可以使用,示例如下:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(test.v1);
        Console.WriteLine((new test()).v2);
    }
}

class test
{
    public static string v1
    {
        get
        {
            return "v1";
        }
    }

    public string v2
    {
        get
        {
            return "v2";
        }
    }
}

另外,静态字段在装载程序集的时候就分配内存空间,而非静态字段要在实例初化时候才分配内存空间。

回答2:

区别一:
普通字段要实例化才能使用,没有实例化不能使用。静态字段反之。如:
name字段的使用:
cla1 i = new cla1();
i.name = "张三";

sex字段的使用:
cla1.sex = "男";

区别二:
普通字段要在实例化时候才分配内存空间,而静态字段在装载程序集的时候就分配内存空间了