在使用R# > Pull members up(拉起成员)操作时,如果在父级类中添加了新的成员,但子级类中的接口和引用没有更新,可以尝试以下方法:
-
手动更新子类中的接口和引用。
-
使用R# > Find Usages(查找用法)功能,找到引用子类的代码并手动更新。
示例:
假设有以下代码:
public class ParentClass
{
public void Method()
{
Console.WriteLine("This is a ParentClass method.");
}
}
public class ChildClass : ParentClass
{
public void AnotherMethod()
{
Method();
Console.WriteLine("This is a ChildClass method.");
}
}
现在使用R# > Pull members up将Method提取到接口中:
public interface IMyInterface
{
void Method();
}
public class ParentClass : IMyInterface
{
public void Method()
{
Console.WriteLine("This is a ParentClass method.");
}
}
public class ChildClass : ParentClass
{
public void AnotherMethod()
{
Method();
Console.WriteLine("This is a ChildClass method.");
}
}
可以发现,IMyInterface已经被更新,但是ChildClass中仍然使用的是旧的Method。为了更新ChildClass中的方法调用,可以手动添加接口实现:
public class ChildClass : ParentClass, IMyInterface // 添加接口实现
{
public void AnotherMethod()
{
Method();
Console.WriteLine("This is a ChildClass method.");
}
public void Method() // 手动添加方法
{
base.Method();
}
}
现在ChildClass中的接口和引用都已经更新了。