通过查看来自开放源代码项目和封闭源代码项目的一些C#代码,我发现私有方法(有时有时是公共方法)被设计为获取参数,而不是直接访问实例变量以提取所需的参数。

  class A
  {
    private B b;

    public void Methode1()
    {
        Methode2(b.SomeProperty);
    }

    private void Methode2(string param)
    {
    }
  }


这被认为是一种好习惯,还是仅仅是一种编程方式?

最佳答案

是的,正常。还考虑将Methode2移到类BTell, don't ask原则):

 class A
  {
    private B b;

    public void Methode1()
    {
        b.Methode2();
    }
  }


不好的是-当您只需要将其整个属性作为方法的参数时(将其传递给方法,而不是执行所需的值):

 class A
  {
    private B b;

    public void Methode1()
    {
        Methode2(b);
    }

    private void Methode2(B b)
    {
        // use b.SomeProperty
    }
  }

10-06 09:46