Закрытые обобщения в комментариях .NET XML - PullRequest
3 голосов
/ 19 июля 2011

Если у меня есть следующая функция:

void ReadData(Action<DataContext> action) {}

как я могу ссылаться на него в seealso конструкции?

<seealso cref="ReadData(Action<DataContext>)"/>

жалуется "Символ '<' нельзя использовать в значении атрибута". Изменение '<' и '>' на '{' и '}' работает, но открывает общий параметр.

Ответы [ 2 ]

5 голосов
/ 19 июля 2011
<seealso cref="ReadData(Action{DataContext})"/>
4 голосов
/ 19 июля 2011

Из раздела A.3.1 спецификации C # 4:

  • Аргументы, использующие параметры универсального типа, определенные для типов, кодируются с помощью символа обратной галочки, за которым следует нулевой индекс индексапараметр типа.
  • Аргументы, которые используют параметры универсального типа, определенные в методах, используют двойной обратный тик вместо единственного обратного тика, используемого для типов.
  • Аргументы, которые ссылаются на сконструированные универсальные типы, кодируются с использованием универсальноготип, сопровождаемый "{", сопровождаемый разделенным запятыми списком аргументов типа, сопровождаемый "}".

(я написал обратный трюк явно, вместо включения символа из-зак ограничениям уценки.)

Из них последняя точка - это то, что вы ищете, поэтому Action{DataContext} согласно ответу Петара.Я включил этот ответ только для дополнительной справки, в основном:)

...