C# XML ドキュメントでジェネリック型のジェネリック型を参照するには? 質問する

C# XML ドキュメントでジェネリック型のジェネリック型を参照するには? 質問する

Expression<Func<T, bool>>述語ヘルパー クラスの XML ドキュメントを作成しています。しかし、構文エラーなしで参照できる方法がわかりません。それは可能なのでしょうか? 私はこれを試しました:

<see cref="Expression{Func{T, bool}}"/>

しかし、下に赤い波線が表示されます{T, bool}}。ただし、これは機能します:

<see cref="Expression{TDelegate}"/>

誰か手がかりを持っていますか?


アップデート:

与えられた答え(そして私が受け入れた)は、どうやらうまくいったようです。しかし、今では解決できないものについての警告が大量に表示され始めています。私は、多くのものExpressionBuilder<T>と連携する というクラスを持っていますExpression<Func<T, bool>>。ですから、もちろん XML コメントでそのクラスを参照したいのです。

私が知っている両方のバージョンを試しました:

<see cref="Expression&lt;Func&lt;T, Boolean&gt;&gt;"/>
<see cref="Expression{Func{T, Boolean}}"/>

しかし、どちらも機能しません。(最後の例では、ReSharper は、{T,Boolean}}コンパイル時に青い波線を表示し、使用したすべての場所で次の警告を 2 つ表示します。

  1. 'blah blah' の XML コメントに、解決できなかった cref 属性 'Expression>' があります
  2. 型パラメータの宣言は型ではなく識別子である必要があります。エラー CS0081 も参照してください。

どこかで同じ問題があり、参照しようとしましたRange<Nullable<DateTime>>(Range<DateTime?>も機能しませんでした。 { } と&lt; &gt;)の両方で

こういったジェネリック医薬品は参照してはいけないのでしょうか?

ベストアンサー1

XML ドキュメントではジェネリックのジェネリックを参照する方法はないようです。これは、実際には、特定のタイプのジェネリックを参照する方法がないためです。

ラッセ・V・カールセン答え私にとっては分かりました:

と記述すると<see cref="IEnumerable{Int32}" />、コンパイラは型引数ではなく、型パラメータ名として「Int32」を使用します。 と記述して<see cref="IEnumerable{HelloWorld}" />も同様に機能します。 MSDN には「IEnumerable of int」の特定のページがないため、ドキュメントにリンクすることはできません。

クラスを適切に文書化するには、次のように記述する必要があると思います。

<summary>
Returns an <see cref="IEnumerable{T}" /> of <see cref="KeyValuePair{T,U}" /> 
of <see cref="String" />, <see cref="Int32" />.
</summary>

テキストが気に入っていただければ幸いです。

おすすめ記事