如何在C#中自动实现接口?

13
在以前的Visual Studio版本中,如果你声明了一个带有接口的类,你可以把光标放在接口上,右键点击并选择“实现接口” (VS 2008类似问题参见这里)。
我开始着手开展一个项目,该项目定义了许多将与SimpleInjector一起使用的接口。现在,当我开始编写我的服务类时,我注意到“实现接口”菜单选项已经不见了。
如何像在VS 2008中那样实现所有必要的方法存根?
非常抱歉,如果这是一个重复的问题,但我无法在任何地方找到答案。
编辑说明 - 2018年8月17日
多年来,这一直是一个热门问题。我更新了标题和标签,以涵盖所有相关的C#和Visual Studio版本。
这最终是我自己的故障。与类一样,由VS生成的接口未被定义为public。由于VS不会自动添加它,所以您必须手动修改接口声明,加上public修饰符。很容易忘记这一步,因为您不必在接口内设置成员修饰符,因为根据定义,它们都是public

似乎这个链接仍然存在:http://msdn.microsoft.com/en-us/library/tx1s9z1w.aspx - Paolo Falabella
FYI,这个功能在VS2010中也存在。我实际上并没有在VS2012中尝试使用它,因为我通常不经常使用那个功能,所以我不能评论它是否存在。但是根据我的经验,如果您同时在代码中有其他编译错误或缺少相关程序集引用,有时候像这样的选项就不会出现,因为它无法弄清楚它是什么或者你在做什么。 - Chris Sinclair
1
一如既往,对我来说没问题。当你右键接口名称时,"实现接口"是上下文菜单中的第一个菜单项。肯定是VS2012。 - Wiktor Zychla
我想在2010 VS中实现IComparable接口,但仍然没有显示蓝色标记...该死的东西!调试时也没有错误。我在这里错过了什么?找到了问题所在。有两种类型的接口。一种用于使用泛型的类型安全,另一种用于非类型安全。我必须使用类型安全才能看到蓝色标记。但我怀疑,为什么会这样? - bonCodigo
3个回答

11

这一点并没有改变。你只需要将鼠标悬停在类的接口名称上,蓝色下划线条就应该出现,给你实现接口的选项。如果蓝色下划线没有出现,请检查使用哪些程序集和命名空间来访问接口。


啊,这是我的失误。这是由于我定义接口时犯了一个错误导致的。Intellisense 没有给我任何警告。我修复了接口,然后从接口声明中出现了下拉选项。 - RLH
2
@RLH: 我可以猜一下吗?public class IMyInterfaceIAccidentallyDeclaredAsAClass { } - Chris Sinclair
是的。我总是把声明搞错。接口必须定义为公共的,方法没有公共/私有声明。 - RLH
1
"蓝线"可能(在VS 2013中)出现在类名下方(而不是接口下方),但您仍然可以右键单击接口并选择实现-它仍然可以正常工作。 - Joezer

10
当您查看接口名称时,应该会看到一个小蓝色的下划线: first image 如果您将鼠标悬停在其上方,将会出现一个下拉菜单,让您实现该接口: second image

8

将光标放在界面文本中(冒号后的部分)然后按下Ctrl + .


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接