2

以下はクラスのリストです。これらのクラスには共通のメソッドがあり、その目的はクラス内で同じです。このメソッドを Fourth Class に移動して CommonMethod() の繰り返しを削除し、残りの Other クラスから呼び出されるようにしたい

    Class First
{
    string ClassField
    method FirstClassMethodOne()
    {
      CommonMethod()
    }

    method CommonMethod()
    {
        classField = 1  
    }

}


Class Second
{
    method SecondClassMethodOne()
    {
      CommonMethod()
    }

    method CommonMethod()
    {

        Fifth.classField = 1        
    }

}


Class Third
{
    method ThirdClassMethodOne()
    {
      CommonMethod()
    }

    method CommonMethod(string a, string b)
    {
        stirng ClassField
        classField = 1      
    }

}


Class Fourth
{
    string FourtClassField
    method FourtClassMethodOne()
    {

    }

}
4

5 に答える 5

3

メソッドを新しいクラスに移動し、その新しいクラスから 3 つの古いクラスを継承させることができます。

class BaseClass
{
   public void YourMethod()
   {
     // ...
   }
}

class FirstClass : BaseClass
{

}
于 2013-06-24T14:02:34.883 に答える
1

メソッドを内部に持つ静的クラスを作成できます。そのメソッドは、必要に応じてクラスを区別するためのパラメーターを受け入れることができます。

于 2013-06-24T14:02:36.647 に答える
0

すべてのクラスが共通の基本 ClassBase を継承する場合は、メソッドを ClassBase に残すことが適切です。

class ClassBase
{
    public static string ClassField;

    public virtual void MethodOne()
    {
        CommonMethod();
    }

    public virtual void CommonMethod()
    {
        ClassField = "1";
    }
}

class ClassOne : ClassBase
{
}

class ClassTwo : ClassBase
{
    public void CommonMethod(string a, string b)
    {
        string localVariable;
        base.CommonMethod();
    }
}
于 2013-06-24T14:10:59.260 に答える
0

新しいクラスを作成し、CommonMethod()そのクラスに追加します。のバージョンをオーバーロードしているように見えるCommonMethod()ため、オーバーロードされたメソッドごとに異なるパラメーターを考慮する必要があります。個々のクラスからメソッドを呼び出すには、クラスのインスタンスまたは静的クラスが必要です。

于 2013-06-24T14:02:19.860 に答える