C#自动重构构造函数

本文关键字:构造函数 重构 | 更新日期: 2023-09-27 18:24:17

我被问到在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",我需要在每个类中都更改它,有可能以某种方式自动重构它吗?

C#自动重构构造函数

如果可能,您可以使用C#泛型:

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将建议您重构派生类的构造函数。