可以csharp类“继承”像java类一样的xml文档吗?

时间:2011-01-10 10:42:51

标签: c# java documentation

我正在为某些csharp代码添加注释,而我正在使用.net(或其他)提供的xml语言。我有一个接口,以及一些实现类。我在界面中有一个方法,它有一个注释。在实现类中,没有对实现方法的评论。

当人们在java中这样做时,javadoc在生成文档时自动使用接口注释。然而,现在我建立了我的项目,我收到了警告(从瑞典转发,抱歉)“缺少可见类型或成员bla.blabla.blablabla()的xml注释(cs1591)”。这只是一个警告,所以不是那么糟糕。但!!!这意味着没有输出xml文件,所以我不能使用sandcastle生成一个chm文档文件,这是我真正的目标.... googling错误编码没有给出任何东西:(

我真的必须将方法注释复制到所有实现类吗?那就像....代码重复D:有没有办法得到java提供的行为?

4 个答案:

答案 0 :(得分:4)

我不知道在XML文件生成时有什么办法让它发生,但是GhostDoc可能会让你无法手动执行复制。我不能说我自己也用过它。

我同意这将是一个有价值的功能...特别是如果在实现和记录派生类之后基类(或接口)文档发生了变化。

答案 1 :(得分:1)

您必须将接口注释复制到实现类。一般来说这是一件好事,因为这两条评论理想上应该是不同的 - 我对此的看法(和实践)可归纳如下:

接口注释 - 解释方法/属性/ etc应该/期望做什么,但通常不应该禁止任何特定实现应该如何表现

实施课程评论 - 解释方法/属性/等实际执行的操作,并可能包含有关如何完成此操作的详细信息(通常在<remarks>中)

答案 2 :(得分:1)

VSdocman可以在生成文档时自动解析已实现接口中缺少的XML注释。而且,像GhostDoc一样,它也可以显式地将继承的注释复制到实现方法中。与Sandcastle不同,它不是免费的。

答案 3 :(得分:0)

我不知道Java但很抱歉你必须在实现的类中复制界面的注释。这里没有内置的做法......

是的,考虑一下JonSkeet给出的建议