如果函数声明是静态的还是非静态的,如果它中的字段是静态的,它会有什么不同吗?

naw*_*fal 3 c# static static-members

    static int _i;
    static void Display()
    {
        //operates on _i;
    }
Run Code Online (Sandbox Code Playgroud)

    static int _i;
    void Display()
    {
        //operates on _i;
    }
Run Code Online (Sandbox Code Playgroud)

哪些方案特定于方法的静态 - 非静态问题?

编辑; 注意:这个问题不是关于静态和非静态方法之间的差异,正如许多人似乎回答的那样.问题是我应该担心差异的情景/用例是什么.为清楚起见,请参阅@ ziesemer的答案,它似乎正好解决了这个问题.

Hen*_*man 6

实例(非静态)版本实现了一个名为"hidden"的参数this.由于它不会用于访问静态字段,因此在这里使用静态方法稍微经济一些.

一般建议是:如果方法可以是静态的,那么将其设为静态.但这更多的是表现出明确的意图而不是表现.