C#自动化构造函数重构

时间:2013-07-23 06:51:34

标签: c# constructor refactoring

我问过是否有任何选择在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”,我需要在每个类中更改它,是否有可能以某种方式重构自动化?

1 个答案:

答案 0 :(得分: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将建议您重构派生类的构造函数。