在Visual Studio中隐藏Intellisense中的接口方法

时间:2012-01-15 15:10:08

标签: .net visual-studio interface intellisense

我有一个界面,它有很多方法。在实现类时,我不应该在Intellisense中看到这些方法。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:6)

您可以在方法上使用 EditorBrowsableAttribute

  

EditorBrowsableAttribute指定在编辑器中可以查看属性或方法。   EditorBrowsableAttribute是设计器的提示,指示是否要显示属性或方法。您可以在可视化设计器或文本编辑器中使用此类型来确定用户可见的内容。例如,Visual Studio中的IntelliSense引擎使用此属性来确定是否显示属性或方法。

这样的东西

   [EditorBrowsable(EditorBrowsableState.Never)]
   public void GetId()
   {
   }

答案 1 :(得分:5)

您需要明确地实施它们。

如果你的界面是:

interface IFoo{
  void DoSomething();
}

然后你可以在如下的类中明确地实现它:

class Foo : IFoo {
  void IFoo.DoSomething();
}

话虽如此,你可能想知道为什么要这样做。接口通常用于定义给定类型的对象能够具有的契约。想要隐藏它可能是一种在设计过程中误入歧途的气味。当然,还有许多使用显式实现的有效案例。例如。 Dictionary有很多来自IEnumerable>的方法的显式实现。但隐藏应该是比规则更多的例外。

如果声明方法将显示的接口类型的变量/成员,如果声明它们将不显示的具体类型的成员/变量。由于您通常应该优先使用具体类的接口,因此这又暗示您可能想要查看隐藏接口声明的方法的原因