小编Can*_*n33的帖子

为什么我可以使用类名而不是类实例来调用这个静态方法?

class Program
{
    static void Main(string[] args)
    {
        var p = new Program();
        p.Main(args);//instance reference error,use type name instead

        var p = new Program();
        Program.Main(args);//error disappears
    }
}
Run Code Online (Sandbox Code Playgroud)

我想我明白静态与对象实例无关,但我遇到的问题是类不是对象的同义词吗?或者不是在创建对象时使用类?那么,如果类本质上是对象,为什么当我使用类名时错误会消失?

我知道我还没有创建一个实例,以后Main也不会。这是唯一不同的东西吗?也许在我正在上的这门课中没有正确解释它。

c# static-methods class method-call member-access

1
推荐指数
1
解决办法
730
查看次数

标签 统计

c# ×1

class ×1

member-access ×1

method-call ×1

static-methods ×1