哪个更好?私人静态与私人

kid*_*man 6 .net c#

在此代码示例中:

public class SuperMan {
    private static bool IsProper(decimal x) {
        return x > 31.0m && x < 45.0m;
    }

    public bool CheckStuff(string a, string b, string c) {
        // lots of code, some of which introduces a variable x
        return IsProper(x) && /* other conditions */;
    }
}
Run Code Online (Sandbox Code Playgroud)

IsProper(..)应该是'私人静态'还是'私人'.假设:

  1. IsProper(..)不需要访问任何实例状态(即使将来也是如此).
  2. 我们并不关心两种选择之间的性能差异(我们不应该做的事情之一就是在没有实际测量的情况下猜测性能并在没有需要的情况下进行优化.)

Gol*_*rol 4

可以是静态的,因为它似乎不需要对 SuperMan 类或其成员做任何事情。但您应该问自己该函数是否属于该类。

如果您正在检查小数是否是SuperMan 的正确小数,那么它就属于那里。但在这种情况下我不会让它静态。您稍后可能需要用 SuperMan 属性替换该常量值。