Как ссылаться на общие classы и методы в XML-документации

При написании документации xml вы можете использовать something , который работает, конечно. Но как вы ссылаетесь на class или метод с общими типами?

 public class FancyClass { public string FancyMethod(T value) { return "something fancy"; } } 

Если бы я где-то собирался писать xml-документацию, как бы я мог ссылаться на причудливый class? как я могу ссылаться на FancyClass ? Как насчет метода?

Например, в другом classе я хотел сообщить пользователю, что я FancyClass экземпляр FancyClass . Как я могу сделать вид креве для этого?

    Чтобы ссылаться на метод:

     ///  for more information. 
     /// Uses a  instance. 

    BTW, он присутствовал в документации MSDN .Net Framework 2.0 и 3.0 , но он был удален в версии 3.5

    Ни один из ответов, показанных до сих пор, не работает полностью для меня. ReSharper не будет конвертировать тег see в ссылку Ctrl + clickable (например, изображение здесь ), если он полностью не разрешит.

    Если метод в OP находился в пространстве имен, называемом Test , полностью разрешенная ссылка на показанный метод:

    Как вы можете быть в состоянии работать, должна быть только одна обратная сторона перед числом параметров типа classа, а затем два обратных цикла перед числом параметров типа метода, тогда параметры являются параметрами с индексом 0 с соответствующим количеством обратных выходов.

    Таким образом, мы можем видеть, что FancyClass имеет 1 тип типа classа, FancyMethod имеет один параметр типа, и объект типа параметра FancyClass будет передан методу.

    Как вы можете более четко видеть в этом примере:

     namespace Test { public class FancyClass { public void FancyMethod(A a, B b, C c, D d, E e) { } } } 

    Ссылка становится:

    M:Test.FancyClass`2.FancyMethod``3(`0,`1,``0,``1,``2)

    Или « Class with 2 type parameters который имеет method with 3 type parameters где параметрами метода являются ClassType1 , ClassType2 , MethodType1 , MethodType2 , MethodType3 )


    В качестве дополнительной заметки я не нашел этого документально нигде, и я не гений, компилятор рассказал мне все это. Все, что вам нужно сделать, это создать тестовый проект, включить документацию по XML , затем вставить код, для которого вы хотите найти ссылку, и поместить на него комментарий XML-документа ( /// ):

     namespace Test { public class FancyClass { /// public string FancyMethod(T value) { return "something fancy"; } } public class Test { public static void Main(string[] args) { } } } 

    Затем создайте свой проект, и выведенная XML-документация включает ссылку в member doc -> members -> под name атрибута:

        Test       

    TL; DR:

    «Как я могу ссылаться на FancyClass

      ///  

    «Как насчет FancyClass.FancyMethod(T value) ?”

      ///  

    «Как я могу ссылаться на FancyClass

      ///  ///  whose generic type argument is  

    Хотя вы можете ссылаться на метод, подпись которого включает FancyClass (например, как тип параметра), вы не можете напрямую ссылаться на такой закрытый общий тип. Второй пример работает с этим ограничением. (Это видно, например, на странице подтверждения MSDN для статического метода System.String.Concat(IEnumerable) ). :

    Правила оформления комментариев к документации XML:

    • Выделите общий список параметров типа с фигурными скобками {} вместо <> угловых скобок. Это избавляет вас от избежания последнего < и > – помните, что комментарии к документации – это XML!

    • Если вы включите префикс (например, T: для типов, M: для методов, P: для свойств, F: для полей), компилятор не будет выполнять какую-либо проверку ссылки, а просто скопирует значение атрибута cref прямо на документация. По этой причине вам придется использовать специальный синтаксис «строка идентификатора», который применяется в таких файлах: всегда использовать полностью квалифицированные идентификаторы и использовать обратные ссылки для ссылки на параметры общего типа ( `n на типах, ``n на методах) ,

    • Если вы опускаете префикс , применяются правила именования обычных языков: вы можете отбрасывать пространства имен, для которых есть оператор using , и вы можете использовать ключевые слова типа языка, такие как int вместо System.Int32 . Кроме того, компилятор проверяет правильность ссылки.

    Документация по документации документации XML:

     namespace X { using System; ///  (or  from outside X) ///  interface I1 { ///  (or  from inside I1) ///  void M1(int p); ///  ///  void M2(U p); ///  ///  void M3(Action p); } ///  ///  interface I2 { ///  ///  void M1(int p); ///  ///  void M2(T p); ///  ///  void M3(U p); } } 

    В дополнение к ответам Лассе и ТБК:

     ///  for more information. ///  for more information. 

    также будут правильно отображать подсказки, в то время как их версия отображает фигурные фигурные скобки.

     /// Here we discuss the use of . /// Your exellent documentation 
     ///  for more information. 
    Interesting Posts

    «Npm install» устанавливает все зависимости в каталоге node_modules, вместо того, чтобы иметь вложенные

    Можете ли вы делать регулярные выражения в Excel без VBScript?

    Проблемы с запуском ядер CUDA из статического кода инициализации

    Остановить событие comboBox selectedIndexChanged от срабатывания при загрузке формы

    Диагностика медленных таблиц Excel?

    Объединение таблиц с двух разных серверов

    Как я могу перебирать все подпункты UIView, а также их подзоны и их подпрограммы

    Кто должен владеть корневой папкой диска?

    vs

    В чем преимущества делегатов?

    MVC Progress Bar Threading

    Есть ли переключатель KVM, который поддерживает * двойные мониторы * с использованием DVI или HDMI?

    Получение исключения ConcurrentModificationException при удалении элемента из java.util.List во время итерации списка?

    Когда приложение iOS переходит в фоновый режим, приостановлены ли длительные задачи?

    Возможно ли открыть текущего владельца папки?

    Давайте будем гением компьютера.