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)b.SomeProperty

そのため、ダブルコードを回避するために、開発者は新しいMethode2(..)メソッドを導入しました。

于 2012-05-15T12:14:07.280 に答える