【问题标题】: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 对重写方法的查找也不会扫描基类,当重写方法没有“重写”注释时也是如此。相反,如果可能的话,我希望如果继承的类没有任何本地注释,则显示基类的注释。此外,如果继承的类具有本地注释,开发人员可以选择判断本地注释是否必须完全覆盖基类的注释,或者是否必须以某种方式将本地注释与基类'一。

有什么建议吗?

【问题讨论】:

标签: c# visual-studio visual-studio-2015 overriding code-documentation


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-01-31
    • 2016-07-08
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    相关资源
    最近更新 更多