【问题标题】:What is the shortcut to generate method-stubs for all defined methods in the interface in Visual Studio?在 Visual Studio 的界面中为所有定义的方法生成方法存根的快捷方式是什么?
【发布时间】:2015-06-03 17:12:15
【问题描述】:

我正在使用 Visual Studio 2012(或 2010)开发一个 C# 项目,该项目由我之前的许多人开发并为其添加功能。由于自从上一个人工作以来需求发生了变化,我需要向接口添加一个新方法,其中大约有 15 个左右的具体类正在实现。所有的实现都不同。

添加新方法签名后,我现在无法编译和运行项目,因为所有 15 个类都没有新添加方法的方法存根。以前,我通过转到每个类并从上下文菜单中选择实现所有方法或使用快捷键来采取手动路线。

我曾经做过的事情:进入实现接口的类,点击菜单中的选项生成所有方法存根,冲洗并重复。

我想知道的:在 Visual Studio 中是否有一个快捷方式可以自动将所有方法存根插入到当前已经实现接口的每个具体类中?

我知道在创建实现接口的新类时很容易做到这一点,但这些类中已经包含大量代码。顺便说一句,我也不想继承这个类。

我想要达到的效果类似于This Eclipse SO question, that also has no answer

到目前为止我发现的是仍然需要我打开大约 15 个类中的每一个并手动生成存根的快捷方式,如果有的话,我将不得不求助于这不是已知的方法:

Generate implementations of base class methods

Implement inherited methods

Shortcut key to implement interface

具体例子

//I have a ICar interface, which 15 concrete classes implement. 
//Now I add a 
getEngineHorsePower() 
//method signature in ICar, 
//is there a quick way to generate method stubs (that will 
throw new NotImplementedException() 
//when called) for all 15 classes?

(如果不缩进就无法发布问题)

【问题讨论】:

  • Resharper 可以做到这一点 :) 不确定 Visual Studio
  • @SriramSakthivel 啊,太酷了!不幸的是,这是一个付费选项。我会继续寻找,但感谢您向我介绍它!

标签: c# visual-studio-2010 visual-studio-2012 keyboard-shortcuts


【解决方案1】:

我找到了这个免费的扩展:

Unit Test Generator

当他们提到这条评论时,也许它可以帮助你: “作为开发人员 Doris,我可以针对多个框架生成单元测试存根,这样我就可以利用我想要的任何框架。”

让我知道这是否适合你...

【讨论】:

  • 嗯,我希望寻找的工具/快捷方式是一种用于实际方法而不是测试存根的工具/快捷方式。尽管这看起来在开发的其他部分很有用。所以谢谢分享!
  • @matrixanomaly 如果你不想为代码生成功能购买 resharper,你可以试试Reegenerator,它更便宜。它对你有用吗?
【解决方案2】:

据我所知,没有免费且简单的方法可以做到这一点,但可以通过使用 ReSharper 来实现,这是一个 Jetbrains 扩展,30 天后需要付费。这是代码生成功能。因此,从 Visual Studio 2012 开始,它没有快捷方式或内置功能。

【讨论】:

  • @DStanley 我相信需要分别打开所有类并单击接口名称,然后单击“实现所有方法”选项。这意味着如果我已经有 15 个类实现了接口中的 5 个方法,并且我在接口上添加了一个新方法,我必须一个一个地打开所有 15 个类才能使用智能标记功能。
  • 啊,好的,我没听清 - 我现在看到了你的问题。评论已删除。
猜你喜欢
  • 2014-07-11
  • 2015-11-02
  • 2011-02-08
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 1970-01-01
  • 2011-03-17
相关资源
最近更新 更多