1

查看来自开源和闭源项目的一些 c# 代码,我看到私有的,有时是公共的方法被设计为接收参数,而不是直接访问实例变量来提取他们需要的参数

  class A
  {
    private B b;

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

    private void Methode2(string param)
    {         
    }
  }

这被认为是一种好的做法,还是只是一种编程方式?

4

2 回答 2

3

是的,这很正常。考虑也搬到Methode2课堂上B告诉,不要问原则):

 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         
    }
  }
于 2012-05-15T12:13:52.457 回答
1

在这个主题上没有“好的做法” 。

这是一种“重载”方法(找不到确切的术语来定义它),保持其中一些私有。那是。

在这个具体的例子中,它也可能Methode2(string param)是从类的其他部分调用的,具有不同的 fromb.SomeProperty参数。

所以为了避免重复代码,开发者引入了一种新Methode2(..)方法。

于 2012-05-15T12:14:07.280 回答