c# 抽象方法添加覆盖的默认注释

Posted

技术标签:

【中文标题】c# 抽象方法添加覆盖的默认注释【英文标题】:c# abstract method add overridden default comment 【发布时间】:2019-04-09 20:19:55 【问题描述】:

这是一个奇怪的问题,但在 C# 或 Visual Studio 中是否有允许将默认注释添加到覆盖的抽象方法的功能?例如。

class A

    // I am the default comment. Use this method to Initialize bla bla.
    protected abstract void Method();


class B : A

    protected override void Method()
    
        // I am the default comment. Use this method to Initialize bla bla.
        ...
    


class C : A

    protected override void Method()
    
        // I am the default comment. Use this method to Initialize bla bla.
        ...
    

那么所有继承的类也应该继承你为抽象方法设置的默认注释。

我使用的是 Microsoft Visual Studio Enterprise 2017 版本 15.8.2。

【问题讨论】:

见***.com/a/7571614/558486和Using the <inheritdoc /> Tag 是第三方库 Sandcastle 的关键字。 Visual Studio 不支持它。 恕我直言,代码应该自己说话。将方法重命名为 Initialize 会很清楚,该方法初始化类并且不需要任何 cmets。 @gofal3 我不知道,我确信这是一个“官方”标签。有趣的是——即使是 Resharper 在创建派生类或覆盖方法时也会生成这个标签.... 但是你想继承方法体内的注释。您的抽象方法应该有 xml 文档,它将引导实现该方法的开发人员阅读并正确实现它。 【参考方案1】:

VS 中没有这样的内置功能,但您可以使用其他技术或库,如 SandCastleRoslyn 可能会完成此操作

【讨论】:

以上是关于c# 抽象方法添加覆盖的默认注释的主要内容,如果未能解决你的问题,请参考以下文章

为啥 C# 接口方法没有声明为抽象或虚拟的?

C#中抽象方法与虚方法的区别详解及示例

在 Java 中实现抽象方法时是不是应该添加 @Override 注释?

覆盖另一个程序集中的内部抽象方法

c#抽象方法:内部公共和虚拟?

C#中多态的实现