5

有一个关于 C# 编译器生成文档的问题。

源代码:

public class SomeClass {
    /// <summary>
    /// Do some work
    /// </summary>
    /// <returns cref="Nullable{Boolean}">
    /// Some stuff
    /// </returns>
    public bool? SomeMethod() {
       return false;
    }
}

编译器为方法 SomeMethod 生成的 XML 文档片段:

<member name="...." >
 ....
  <returns cref="T:System.Nullable`1">SomeStuff</returns>
</member>

有没有办法强制它产生

<member name="...." >
 ....
  <returns cref="T:System.Nullable{System.Boolean}">SomeStuff</returns>
</member>

反而。?

4

3 回答 3

2

抱歉不行。

无法更改 .xml 文件的生成方式。

相反,您必须更改处理这些文件的任何内容以处理该语法,或更改 XML 文档。

这里的问题是,这与因为括号之间的部分没有被理解为类型,而是作为泛型类型参数Nullable{Boolean}没有区别。, , , 都是一样的。Nullable{T}TBooleanXYZ

您要么必须更改读取此内容的工具(我不知道您将如何做到这一点),要么以不同的方式写出您的参考资料:

/// <returns>
/// <see cref="Nullable{T}/> with <c>T</c> being <see cref="Boolean"/>.
/// </returns>
于 2013-06-13T10:39:30.320 回答
2

我使用这种语法:

/// <summary>
///   Returns the field's value cast into <see cref="int"/>?.
/// </summary>
/// ...
public int? GetNullableInt(string name, int? defaultValue = null)

这意味着类型引用不是 100% 准确,但文档工具提示预览的突出显示等同于签名预览的样子(有色int、无色?)。

于 2016-04-28T17:24:31.760 回答
1

怎么用

Nullable<bool>
于 2013-06-13T10:40:10.347 回答