2

C#でそのようなことを行うオプションがあるかどうか尋ねられました。そのようなコードがあるとしましょう:

class A
{
   public A(int b);
}

class B : A
{
   public B(int b)
   : base(b);
}

class C : B
{
    public C(int b)
    : base(b)
}

そして今、クラスAの「int b」を「Car b」に変更したい場合、すべてのクラスでこれを変更する必要があります。これをリファクタリングして何らかの方法で自動化することはできますか?

4

1 に答える 1

0

可能であれば、C# Genericsを使用できます。

class A<T>
{
    public A(T b)
    {}
}

class B<T> : A<T>
{
   public B(T b)
   : base(b)
    {}
}

class C<T> : B<T>
{
    public C(T b)
    : base(b)
    { }

}

int には次の構文を使用できます (車にも同じ原則を使用します)。

var intVar = new C<int>(10);

それ以外の場合、すべてのタイプを一度に変更するツールはありません。パラメータの型を Car に変更すると、Resharper は派生クラスのコンストラクタをリファクタリングするよう提案します。

于 2013-07-23T06:54:10.737 に答える