在此代码示例中:
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 */;
}
}
IsProper(..)应该是'私有静态'还是'私有'。假设:
答案 0 :(得分:4)
它可以是静态的,因为它似乎不需要对SuperMan类及其成员做任何事情。但是你应该问问自己该函数是否属于那个类。
如果您正在检查十进制是否为SuperMan 的正确小数,那么它就属于那里。但在这种情况下我不会让它变得静止。有可能您稍后需要使用SuperMan属性替换该常量值。
答案 1 :(得分:2)
使IsProper成为实例成员的原因:
使IsProper成为静态成员的原因:
答案 2 :(得分:0)
静态方法可能会更快一些,但另一方面,有时候重构可能会更难。