c#和功能纯度

时间:2015-07-11 02:21:52

标签: c# class object

我最近不得不使用c#,我没有多少经验。我一直在寻找自己的难题是,在构建一个类时,状态依赖于在它之前初始化的状态

  class foo{
    public bar_ {get;}
    public dum_ {get;}

    public foo (){
      bar_ = BuildBar();
      dum_ = BuildDum(bar_);
    }
 }
如果它只是使用已经可以从成员访问的东西,那么BuildDum携带一个参数有点多余。另一方面,我喜欢明确指出函数依赖的依赖

我想我在问:处理这种情况的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

两种方式都很好。 BuildDum的当前版本可以设为static,在这种情况下,该方法无法访问任何成员变量,因为无论如何都无法执行此操作:

private static Dum BuildDum(Bar b) {
    ...
}

如果您BuildDum直接访问bar_,您还应该访问_dum,即它应该是非静态void

private void BuildDum() {
    ...
    _dum = ...
}