C#中派生类如何继承基类构造函数参数的summary注释
能否引用/继承基类构造函数参数的描述信息?
我想确认是否可以引用或继承基类构造函数参数的描述信息。目前我已经能顺利引用属性的描述信息,但构造函数这块似乎行不通,核心问题是签名匹配的限制。
以下是相关代码示例:
<param name="number"><inheritdoc cref="Number" path="/summary"/></param>
public class A { /// <summary> /// 一些描述内容 /// </summary> /// <param name="param">我想在派生类中继承这个参数的摘要。</param> public A(string param) {} } public class B : A { /// <summary> /// 一些描述内容 /// </summary> /// <param name="param">我希望从基类继承这个参数的描述。</param> /// <param name="newParam">新增参数的描述内容。</param> public B(string param, int newParam) : base(param) { } }
可行解决方案
其实是可以实现的,关键是要在inheritdoc中精确指定基类构造函数的签名和参数路径:
修改派生类中param的注释为:
/// <param name="param"><inheritdoc cref="A(string)" path="/param[@name='param']"/></param>
cref="A(string)":明确指向基类的目标构造函数(如果基类有重载构造函数,必须写全签名避免歧义)path="/param[@name='param']":通过XPath定位到该构造函数下对应名称的参数描述
主流的文档生成工具(比如Visual Studio智能提示、Sandcastle等)都支持这种写法,能正确继承基类构造函数参数的描述信息。
内容的提问来源于stack exchange,提问作者user2184057
相关产品推荐
相关产品推荐

