继承基类构造函数参数 <summary> 在派生类中 C#

5

我想知道是否有可能引用/继承基础构造函数参数的说明。根据我的研究,我能够找出如何引用属性的说明,但目前似乎无法引用构造函数参数(签名匹配是主要问题)。

<param name="number"><inheritdoc cref="Number" path="/summary"/></param>

    


    public class A
{
    /// <summary>
    /// Some description
    /// </summary>
    /// <param name="param">I want to inherit this summary in a derived class.</param>
    public A(string param)
    {

    }
}

public class B : A
{
    /// <summary>
    /// Some decription
    /// </summary>
    /// <param name="param">I would like inherit description from the base class. </param>
    /// <param name="newParam">Some new description.</param>
    public B(string param, int newParam) : base(param)
    {
    }
}

并不完全是这样。问题在于,我想要做的是继承基本构造函数参数的摘要描述,并为新参数手动定义描述。Inheritdoc 很好用,但只有在你想从父类中继承所有内容时才适用。 - user2184057
1个回答

3

继承文档功能很好,但只有在你想从父类中获取所有内容并且不需要自己的内容时才适用。

实际上不是这样,你可以使用 <inheritdoc> 标签来获取基类中所需的内容,包括所有内容或者通过 XPath 表达式获取特定节点的值,如下所示:

是否可以从特定参数继承文档?

在你的情况下,应该像这样:

public class A
{
    /// <summary>
    /// Some description
    /// </summary>
    /// <param name="param">I want to inherit this summary in a derived class.</param>
    public A(string param)
    {

    }
}

public class B : A
{
    /// <summary>
    /// Some decription
    /// </summary>
    /// <param name="param"><inheritdoc cref="A(string)" path="/param[@name='param']"/></param>
    /// <param name="newParam">Some new description.</param>
    public B(string param, int newParam) : base(param)
    {
    }
}

含义:

  • cref="A(string)" 指定了基类的构造函数。
  • path="/param[@name='param']" 指定了所需的参数。

1
谢谢,我已经检查过了,它可以正常工作。虽然它并不完美,因为重命名变量很容易破坏它,但它允许在文档中实现DRY,这非常棒。真的很遗憾,在DRY文档方面支持如此之少。我接受这个答案。 - user2184057

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接