假设我有这个界面
public interface IFoo { ////// Foo method /// void Foo(); ////// Bar method /// void Bar(); ////// Situation normal /// void Snafu(); }
而这堂课
public class Foo : IFoo { public void Foo() { ... } public void Bar() { ... } public void Snafu() { ... } }
有没有办法,还是有一个工具可以让我自动放入基类或接口中每个成员的注释?
因为我讨厌为每个派生的子类重写相同的注释!
你总是可以使用
标签.
public class Foo : IFoo { ///public void Foo() { ... } /// public void Bar() { ... } /// public void Snafu() { ... } }
///
如果要继承,请使用.避免GhostDoc或类似的东西.
我同意,评论不是继承的,这很烦人.如果有人有时间(我希望我这样做),这将是一个相当简单的插件.
也就是说,在我们的代码库中,我们只在接口上放置XML注释,并为类添加额外的实现注释.这适用于我们,因为我们的类是私有/内部的,只有接口是公共的.每当我们通过接口使用对象时,我们都会在intellisence中显示完整的注释.
GhostDoc是一个良好的开端,并使该过程更容易编写注释.添加/删除参数,重新运行GhostDoc并更新描述时,使注释保持最新非常有用.
GhostDoc正是如此.对于未继承的方法,它尝试从名称中创建描述.
FlingThing()
变 "Flings the Thing"
Java有这个,我一直都在使用它.做就是了:
/** * {@inheritDoc} */
Javadoc工具可以解决这个问题.
C#有类似的标记:
你可以在这里阅读更多:
http://www.ewoodruff.us/shfbdocs/html/79897974-ffc9-4b84-91a5-e50c66a0221d.htm
Resharper可以选择从基类或接口复制注释.
我会说要直接使用
///--> For methods inheritance
和
///--> For directly class inheritance
您必须将此注释放在类/方法的上一行
这将从您已记录的界面获取您的注释信息,例如:
////// This method is awesome! /// /// The awesome parameter of the month!. ///A AwesomeObject CreateAwesome(WhateverObject awesomeParam);that is also awesome...
另一种方法是使用
XML文档标签。这是一些额外的工作,但可以立即使用...
这里有些例子:
////// Implementation of public class Foo : IFoo { ///. /// /// See public void Foo() { ... } ///. /// /// See public void Bar() { ... } ////// /// This implementation of public void Snafu() { ... } }uses the a caching algorithm for performance optimization. ///
更新:
我现在更喜欢使用///
ReSharper支持的功能。