📜  c#中的静态类可以有非静态成员(1)

📅  最后修改于: 2023-12-03 15:29:48.650000             🧑  作者: Mango

C#中的静态类可以有非静态成员

在C#中,我们通常将静态类用于保存公共方法和属性,这些方法和属性可以在应用程序中的任何地方被调用而无需在其他类中创建实例。由于静态类不能被实例化,因此我们往往认为它的成员都是静态的,但实际上,它可以包含非静态成员。

静态类中的非静态成员

在C#中,静态类可以包含非静态成员,这些成员同样不能被实例化,也不能用于派生类。静态类中的非静态成员通常用于仅限于该类的操作和数据,这些数据和操作可以更新和检索。

下面是一个示例:

static class MyStaticClass
{
    private static int _count = 0;
    public static void IncrementCount() => _count++;
    public static void DecrementCount() => _count--;

    public static int Count
    {
        get { return _count; }
        set { _count = value; }
    }

    public static void SayHello()
    {
        Console.WriteLine("Hello World!");
    }
}

在上面的示例中,我们可以看到静态类MyStaticClass包含了一个静态字段_count和自动属性Count,这些成员用于跟踪该类的实例数量。除此之外,该类还包含了一个非静态方法SayHello()

使用静态类

要使用静态类,您可以直接通过类名调用其静态成员,如下所示:

MyStaticClass.IncrementCount();
MyStaticClass.SayHello();

对于静态类中的非静态成员,您需要像访问静态成员一样进行访问:

int count = MyStaticClass.Count;
MyStaticClass.Count = 10;
总结

在C#中,静态类可以包含非静态成员。这些成员用于仅限于该类的操作和数据,并且不能被实例化。要使用静态类,您可以直接通过类名访问其静态成员,对于非静态成员,您需要像访问静态成员一样进行访问。