在C#XML文档中引用genericstypes的generics?
为谓词助手类编写一些XML文档。 但我不明白,我可以参考一个Expression<Func<T, bool>>
没有得到一个语法错误。 这甚至有可能吗? 我试过这个:
<see cref="Expression{Func{T, bool}}"/>
但是我在{T, bool}}
下面得到了一条红色的波浪线。 这工作虽然:
<see cref="Expression{TDelegate}"/>
任何人都有线索?
更新:
这个答案(我接受)看起来确实有效。 但是现在我已经开始收到许多关于无法解决的问题的警告。 我有一个名为ExpressionBuilder<T>
的类,它很适合Expression<Func<T, bool>>
。 所以我当然想在我的XML评论中提到这一点。
我已经尝试了两个我知道的版本:
<see cref="Expression<Func<T, Boolean>>"/> <see cref="Expression{Func{T, Boolean}}"/>
但是都没有工作。 (最后一个,ReSharper在{T,Boolean}}
下面放了一个蓝色的波形{T,Boolean}}
我在编译的地方得到了两个警告,我用它来说:
- 对“blah blah”的XML注释具有无法parsing的cref属性“Expression”
- types参数声明必须是不是types的标识符。 另见错误CS0081。
我尝试引用Range<Nullable<DateTime>>
( Range<DateTime?>
没有工作,有{}和< >
)
我不应该提到这种types的generics?
似乎没有办法在XML文档中引用generics,因为实际上,没有办法引用任何特定types的generics。
Lasse V Karlsen的回答为我点击:
如果编写<see cref="IEnumerable{Int32}" />
,编译器只是使用“Int32”作为types参数名称,而不是types参数。 编写<see cref="IEnumerable{HelloWorld}" />
也可以。 这是有道理的,因为在MSDN中没有关于你的文档可以链接到的“IEnumerable of int”的特定页面。
为了正确logging你的课程,我想你必须写下如下的东西:
<summary> Returns an <see cref="IEnumerable{T}" /> of <see cref="KeyValuePair{T,U}" /> of <see cref="String" />, <see cref="Int32" />. </summary>
我希望你喜欢文字。
你到底想要链接到什么?
Expression<Func<T>>
在文档中没有这样的东西,所以显然这个链接是行不通的。
您可以链接到Expression<TDelegate>
因为它存在。
至于什么工作或不工作,以下两种工作在Visual Studio 2008 / .NET 3.5中:
/// <see cref="Expression<Func<T>>"/>. /// <see cref="Expression{Func{T}}"/>.
但是这个工作:
/// <see cref="Expression{T}"/>.
所以显然genericstypes参数不必与声明中的一样。
// Use "<" instead of "<" symbol and ">" instead of ">" symbol. // Sample: <see cref="Expression<Func<T, bool>>"/>
我现在正在运行,因为我有一个返回List<List<byte>>
的函数。 是的,这很丑,但我没有写。 标准免责声明,我知道。
无论如何,在VS 2017与R#终极2017.1,这个文档评论…
<returns><see cref="List{List{Byte}}" /> of split frames</returns>
…给我一个语法错误。 但是,这…
<returns><see><cref>List{List{byte}}</cref></see> of split frames</returns>
…才不是。 Eeeenteresting 。
还丑吗? 是。
丑吗? 我认为这比使用<
和>
我….