我被问到是否有任何选项可以在 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# 中做类似的事情,假设我们有这样的代码:
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# 泛型:
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 会建议您重构派生类的构造函数。