Подтвердить что ты не робот

Использование атрибута cref комментария С# xml с синтаксисом params

В С# я пытаюсь использовать < see cref = "blah" / > для ссылки на подпись метода, которая содержит ключевое слово params. Я знаю, что это преобразует список параметров в массив, но я даже не могу понять, как обращаться к массиву в атрибуте CREF. Я не нахожу ничего в моих поисках, и никто, кого я знаю, не имеет ни малейшего представления. Компилятор задыхается в квадратных скобках. Я пробовал всевозможные комбинации, используя фигурные скобки, используя класс Array, но ничего не работает. Кто-нибудь знает это?

4b9b3361

Ответ 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);
        }
    }