重写的方法文档

Posted

技术标签:

【中文标题】重写的方法文档【英文标题】:Overridden method documentation 【发布时间】:2020-05-09 12:52:44 【问题描述】:

我正在使用 C# 和 Visual Studio(2015 年,未检查其他版本)。

我对代码文档的覆盖方法有疑问。请看下面的例子

public class BaseClass

    public BaseClass()
     

    /// <summary>
    /// BaseClass.MethodName comment
    /// </summary>
    public virtual void MethodName()
     


public class InheritedClass : BaseClass

    public InheritedClass(): base()
     

    public override void MethodName()
     


public class Test

    public static void m()
    
        BaseClass b = new BaseClass();
        b.MethodName();

        InheritedClass i = new InheritedClass();
        i.MethodName();

        BaseClass iasb = i;
        iasb.MethodName();
    

如果我将光标移到对 MethodName() 的 3 个不同调用上,我会得到:

通过:

通过我:

通过 iasb:

似乎代码 cmets 对重写方法的查找也不会扫描基类,当重写方法没有“重写”注释时也是如此。相反,如果可能的话,我希望如果继承的类没有任何本地注释,则显示基类的注释。此外,如果继承的类具有本地注释,开发人员可以选择判断本地注释是否必须完全覆盖基类的注释,或者是否必须以某种方式将本地注释与基类'一。

有什么建议吗?

【问题讨论】:

见github.com/dotnet/csharplang/issues/313 在 Visual Studio 2019 上运行正常 是的,好像是在VS 2019 16.4中引入的 【参考方案1】:

这是在 Visual Studio 2019 版本 16.4 中引入的。来自release notes:

.NET Productivity 此版本中的新增功能包括直接通过编辑器配置代码样式规则的严重性级别、使用新的 Go To Base 命令轻松向上导航继承链、为所有参数添加空检查以及用于覆盖方法的 XML 文档。

在那之前,似乎有一个extension 和一个MSBuild task 来完成同样的事情,方法是用/// &lt;inheritdoc/&gt; 装饰被覆盖的方法。

【讨论】:

以上是关于重写的方法文档的主要内容,如果未能解决你的问题,请参考以下文章

Python 实现操作文档的读取,续写,覆盖重写自动备份

继承和重写

IIS通过http方法重写排除规则

nginx rewrite重写与防盗链配置

UILabel给文字增加内边距

ABP官方文档翻译 5.2 动态We API层