gpt4 book ai didi

c# - C#同步接口(interface)和实现注释的方法

转载 作者:IT王子 更新时间:2023-10-29 03:37:35 25 4
gpt4 key购买 nike

是否有自动同步接口(interface)及其实现之间注释的方法?我目前正在记录它们,不想手动使它们保持同步。

更新:

考虑这段代码:

interface IFoo{
/// <summary>
/// Commenting DoThis method
/// </summary>
void DoThis();
}

class Foo : IFoo {
public void DoThis();
}

当我这样创建类时:

IFoo foo=new Foo();
foo.DoThis();//comments are shown in intellisense

此处不显示评论:

Foo foo=new Foo();
foo.DoThis();//comments are not shown in intellisense

<inheritDoc/>标签将在 Sand CaSTLe 中完美生成文档,但它在智能提示工具中不起作用。

最佳答案

您可以使用 Microsoft SandcaSTLe(或 NDoc)inheritdoc 标签轻松完成此操作。规范并未正式支持它,但自定义标签是完全可以接受的,事实上,Microsoft 在创建 SandcaSTLe 时选择从 NDoc 复制这个(以及一两个其他标签)。

/// <inheritdoc/>
/// <remarks>
/// You can still specify all the normal XML tags here, and they will
/// overwrite inherited ones accordingly.
/// </remarks>
public void MethodImplementingInterfaceMethod(string foo, int bar)
{
//
}

Here是 SandcaSTLe Help File Builder GUI 的帮助页面,它完整地描述了它的用法。

(当然,正如您的问题所提到的,这并不是特别的“同步”,但它似乎正是您正在寻找的东西。)

请注意,这对我来说听起来像是一个非常公平的想法,尽管我观察到有些人认为您应该始终在派生类和实现类中重新指定注释。 (实际上,我自己在记录我的一个库时就这样做了,而且我没有发现任何问题。)注释几乎总是没有理由完全不同,那么为什么不直接继承并以简单的方式来做呢?

编辑:关于您的更新,SandcaSTLe 也可以为您处理。 SandcaSTLe 可以输出它用于输入的实际 XML 文件的修改版本,这意味着您可以将这个修改版本与您的库 DLL 一起分发,而不是直接由 Visual Studio 构建的版本,这意味着您有智能感知中的注释以及文档文件(CHM,等等)。

关于c# - C#同步接口(interface)和实现注释的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/824007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com