我在这里阅读了有关静态与实例方法的信息,但我没有看到任何回答这个特定问题的方法(可能是绿色的)。
当您有一个具有某些属性的类,以及该类中需要使用这些属性的方法时,使用静态方法还是实例方法更好?
IE
class Foo
{
//properties
bar1;
bar2;
//method
sumbar1andbar2()
{
return bar1 + bar2;
}
}
sumbar1andbar2 方法需要 Foo 类的两个属性都存在。制作一个静态方法并以这种方式调用它似乎有点愚蠢,因为我手动将类的成员传递给类的方法:
Foo foo1 = new Foo();
foo1.bar1 = x;
foo1.bar2 = y;
sumbar1andbar2(foo1.bar1, foo1.bar2);
但是虽然下面的实例方法看起来更干净,但我不知道有一种干净简单的方法可以确保 bar1 和 bar2 都不为空,这会导致异常:
Foo foo1 = new Foo();
foo1.bar1 = x;
foo1.bar2 = y;
sumbar1andbar2();
但是,如果该方法修改了该类的另一个属性,例如 bar3,则该实例方法似乎会更好。