В С# я пытаюсь использовать < see cref = "blah" / > для ссылки на подпись метода, которая содержит ключевое слово params. Я знаю, что это преобразует список параметров в массив, но я даже не могу понять, как обращаться к массиву в атрибуте CREF. Я не нахожу ничего в моих поисках, и никто, кого я знаю, не имеет ни малейшего представления. Компилятор задыхается в квадратных скобках. Я пробовал всевозможные комбинации, используя фигурные скобки, используя класс Array, но ничего не работает. Кто-нибудь знает это?
Использование атрибута cref комментария С# xml с синтаксисом params
Ответ 1
В стандарте ECMA 334 Standard PDF, приложение E содержится достойный обзор комментариев к документации XML. Вы можете загрузить этот стандарт по адресу:
http://www.ecma-international.org/publications/standards/Ecma-334.htm
В частности, вам понадобится раздел E.3.1, начиная со страницы 496.
Аналогичный контент также находится в MSDN (хотя MSDN, похоже, имеет ужасную навигацию по этой теме, что затрудняет поиск других разделов):
http://msdn.microsoft.com/en-us/library/aa664787(VS.71).aspx
Эквивалент E.3.1:
http://msdn.microsoft.com/en-us/library/aa664807(VS.71).aspx
Вы также можете найти полезную документацию Mono:
http://www.go-mono.com/docs/[email protected]%3amdoc(5)
В частности, раздел "CREF FORMAT" охватывает условные обозначения идентификаторов.
Ответ 2
В соответствии со статьей B.3.1 ID string ссылка на массив выполняется с помощью [квадратных скобок] (с необязательными спецификаторами lowerbound:size
), но если вы просто хотите обратиться к массиву определенного типа (или даже массива объектов), вы не можете просто написать
<see cref="Object[]"/>
вместо этого вам нужно указать, что вы делаете ссылку типа с префиксом T:
, например
<see cref="T:Object[]"/>
Это не похоже на ссылку на конкретную перегрузку метода, например
<seealso cref="String.Join(String, String[])"/>
Ответ 3
Вы просто не указываете ключевое слово param и вводите его следующим образом:
/// <summary>
/// <see cref="Method(string[])"/>
/// </summary>
public static void Main()
{
Method("String1", "String2");
}
public static void Method(params string[] values)
{
foreach (string value in values)
{
Console.WriteLine(value);
}
}