Visual Studio 使用有什么好处吗< inheritdoc/>?

uhry853o  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(109)

过去,在.NET代码中,我认为必须指定<inheritdoc/>才能从继承成员的<summary>注解中获得描述(例如)。
现在,至少在Visual Studio中,是否使用<inheritdoc/>似乎没有区别。我们总是看到继承的描述。这在here中讨论。
由于Visual Studio中没有明显的好处,因此我倾向于删除<inheritdoc/>,或者至少不需要指定它。
但是,使用它有什么好处吗?例如,我在Visual Studio中缺少了什么吗?或者当前是否有文档工具使用它?

wnavrhmk

wnavrhmk1#

<inheritdoc>标记仍然是非常需要的。我经常使用它。它允许你继承注解或注解部分也从非继承成员。
例如:

public class Class1
{
    /// <summary>
    /// This is a method in a base class.
    /// </summary>
    /// <param name="specialCode">The special code with the following allowed values:<br/>
    /// "VAL_1"<br/>
    /// "VAL_2"<br/>
    /// </param>
    /// <remarks>
    /// <para>Bla bla.</para>
    /// <para id="algorithm">
    /// This is a very long description of some algorithm.
    /// ...
    /// </para>
    /// </remarks>
    public virtual void Method1(string specialCode) { }

    // Inherit parameter and one paragraph from remarks.
    // Not from an inherited method.

    /// <summary>
    /// Another method in a base class.
    /// </summary>
    /// <param name="specialCode">
    /// <inheritdoc cref="Method1(string)"/>
    /// </param>
    /// <remarks>
    /// This method uses an algorithm described below.
    /// <inheritdoc cref="Method1(string)" path="/remarks/para[@id='algorithm']"/>
    /// </remarks>
    public void Method2(string specialCode) { }
}

public class Class2 : Class1 {

    // inherit all except for the summary.

    /// <summary>
    /// This is an overridden method.
    /// </summary>
    /// <inheritdoc/>
    public override void Method1(string specialCode) { }
}

是的,文档工具将从中受益,包括我的VSdocman。但是上面的示例也将与Intellisense一起工作。

相关问题