首页 > 解决方案 > 重写的方法文档

问题描述

我正在使用 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 个不同调用上,我会得到:

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

有什么建议吗?

标签: c#visual-studiovisual-studio-2015overridingcode-documentation

解决方案


这是在 Visual Studio 2019 版本 16.4 中引入的。从发行说明

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

在此之前,看起来有一个extension和一个MSBuild 任务来完成同样的事情,方法是用/// <inheritdoc/>.


推荐阅读