接口更改时从实现中删除接口成员

时间:2015-08-11 12:17:57

标签: c# interface interface-implementation

情况:

我实现了一个隐式接口并删除了接口上的属性(稍后)。 没有警告应该在实现类上删除此属性。

我知道我可以明确地实现接口,但我会尝试解决这个问题。

编辑:(添加了一个问题)

如何通知/警告/ ......我可能不再需要实施班的成员?

1 个答案:

答案 0 :(得分:1)

编译器无法在C#中给出这样的警告。它会以某种方式需要知道界面的过去版本,以了解删除了哪些方法/属性,从而确定可能的删除候选者。

回答你的评论,你不能让编译器/重构工具决定任何给定的方法是否仅仅是基于其定义的#region的候选者。绝对没有任何东西强制任何给定的方法被定义在任何给定的region中,它只是视觉糖,因此基于区域的重构将是完全不安全的。

有时冗长的语言确实有优势,在这种情况下,带有implements关键字的VB会使这成为编译时错误。在C#中,您必须使用明确实现的接口,这根本不是一个糟糕的选择。请阅读here了解详情。