是否直接访问类实例成员或将状态作为参数传递给类方法的任何最佳实践?

时间:2011-02-01 05:58:06

标签: c#

例如:

Foo
{
     private int _instanceData;

    // Do this?
    private void Bar1(int instanceData) { // some work using 'instanceData' }

    // Or this?
    private void Bar1( ) { // some work using '_instanceData' }
}

2 个答案:

答案 0 :(得分:6)

如果一个方法已经可以访问相关信息作为对象状态的一部分 - 而且毫不含糊 - 那么我认为将其作为参数传递给它会非常困惑方法。

实例方法的大多数要点是将行为与对象的状态相关联。如果你传递方法所需的信息,你最好让方法本身是静态的,使它 clear 你没有使用对象的现有状态。我可能只是把它作为第一个实例方法。

当您已经通过实例状态访问信息时,为什么希望通过参数传递信息?

答案 1 :(得分:2)

如果属性或字段属于同一个类,并且您不希望将外部数据传递给该方法,则无需从开发人员请求该信息,而是在类实例本身内调用它。