例如:
Foo
{
private int _instanceData;
// Do this?
private void Bar1(int instanceData) { // some work using 'instanceData' }
// Or this?
private void Bar1( ) { // some work using '_instanceData' }
}
答案 0 :(得分:6)
如果一个方法已经可以访问相关信息作为对象状态的一部分 - 而且毫不含糊 - 那么我认为也将其作为参数传递给它会非常困惑方法。
实例方法的大多数要点是将行为与对象的状态相关联。如果你传递方法所需的信息,你最好让方法本身是静态的,使它 clear 你没有使用对象的现有状态。我可能只是把它作为第一个实例方法。
当您已经通过实例状态访问信息时,为什么希望通过参数传递信息?
答案 1 :(得分:2)
如果属性或字段属于同一个类,并且您不希望将外部数据传递给该方法,则无需从开发人员请求该信息,而是在类实例本身内调用它。