处理传统的中型项目。我已经使用Decorator模式实现了一项功能,它工作得很好,除了它破坏了从接口到实现使用向下转换的糟糕代码。
问题是:是否有任何工具或编译器标记或其他东西可以帮助我找到所有使用向下转换的情况。我可以找到所有类型的所有案例。
我有一些代码来阐述我的问题:
曾经有
interface IComponent {}
class Concrete : IComponent {}
...
IComponent obj = new Concrete()
现在
interface IComponent {}
class Concrete : IComponent {}
class Decorator : IComponent
{
private IComponent _imp = new Concrete()
}
...
IComponent obj = new Decorator()
并且错误代码中断了将obj转换为Concrete的过程,例如(Concrete)obj。
最佳答案
用Concrete
临时标记ObsoleteAttribute
。然后在Visual Studio中检查“错误列表”,以获取有关使用过时代码的警告。双击这些将把您带到使用Concrete
的代码。
关于c# - C#向下档侦测工具,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33310099/