为什么我们不能通过.net中的对象访问静态方法

Tho*_*mas 3 c#

使用以下代码:

public class test
{
    public static void DoSomething()
    {
        Console.WriteLine("test");
    }
}

public class test2
{
    public test2()
    {
        var a = new test();
        a.DoSomething(); // invalid
        test.DoSomething(); // is valid
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要通过基类访问静态方法,而不是通过实例.

但是,让用户通过实例访问它会有什么不利之处呢?在我看来,它有助于提高可读性.

小智 6

您不能从类实例调用静态方法,因为所有静态字段和方法都与类型相关联,而不是与所述类型的实例相关联.

为了更深入地理解静态类,我建议你阅读这个.