#c# #.net #visual-studio #visual-studio-2010 #xml-documentation
#c# #.net #visual-studio #visual-studio-2010 #xml-документация
Вопрос:
Существует
///<summary>
///This is summary for some class or method
///</summary>
документация для классов или методов. Но как написать это для простых переменных или списков?
Я использую Visual Studio 2010, и когда я навожу курсор на какой-либо список, свойство или что-либо еще, я хотел бы увидеть какое-то резюме (в этой маленькой подсказке), которое я написал для этой конкретной вещи.
///<doc>
///always use this list!
List<String> beer = new List<String>();
редактировать: хорошо, мы выяснили, что это работает как обычно, пока вы комментируете в своем классе, но ВНЕ метода или функции!!
Есть ли способ документировать / комментировать внутри метода?
public class BeerForall
{
/// <summary>
/// it works here
/// </summary>
public List<String> beer = new List<string>();
public String giveBeer()
{
/// is not working, u can not comment
/// <summary>
/// test test, not working
/// </summary>
List<String> moreBeer = new List<string>();
return "beer";
}
}
Комментарии:
1. Он отлично работает для всех свойств и полей, но, вероятно, не будет работать ни для одной переменной в функции?
2. черт, вы правы:/ не работает в методе. В классе вы можете документировать как обычно, но внутри метода / функции это не работает! Есть способ заставить это работать?
3. Да, это действительно работает для методов? Где определен ваш метод и откуда вы его вызываете? Если это отображается в intellisense, будут показаны комментарии. Иногда загрузка может занять всего несколько секунд.
4. Вы не можете документировать локальные переменные.
5. Упс. Не видел внутри метода, нет, это не работает.
Ответ №1:
Как упоминали другие, вы не можете получить IntelliSense для локальных переменных. Однако: если ваша функция настолько велика, что «обычный» комментарий недостаточно близок для чтения рядом с местом, где вы используете var, тогда правильным решением будет реорганизовать функцию — разбить ее на несколько меньших методов с меньшим количеством переменных. Я не думаю, что эта функция должна существовать, поскольку она будет служить только для облегчения написания чрезмерно больших функций.
Комментарии:
1. Возможно, вы не понимаете, как это может быть полезно. Я предлагаю вам взглянуть на doxygen. В doxygen любую документацию, которую вы можете написать в комментарии перед функцией, вы можете написать и внутри функции. Это позволяет вам продолжить, например, раздел комментариев с объяснением алгоритма, чередованием кода и документации в стиле, который очень близок к буквальному программированию. Некоторые фрагменты кода приносят большую пользу.
2. Рефакторинг кода хорош, но я не понимаю, как изъятие инструментов у программиста является полезной «функцией» для обеспечения соблюдения надлежащих методов кодирования. Черт возьми, я не думаю, что это работает, тот, кто написал кодовую базу, которую я поддерживаю сейчас, не сказал «о, боже, я не могу комментировать локальные переменные, так что это означает, что теперь я буду кодировать лучше». Кроме того, гипотетически, если это действительно было упущено для поощрения хорошего стиля кодирования, почему комментарии локальной переменной Intellisense работают для C / C , но не для C # в VS2013?
3. «Я не думаю, что эта функция должна существовать, поскольку она будет служить только для облегчения написания чрезмерно больших функций». Я думаю, что это должно существовать, если вы не можете переписать более 30 тыс. строк кода серверной части, с которой мне приходится иметь дело.
4. На самом деле мы документируем эти переменные, чтобы в первую очередь реорганизовать мега-методы, и отсутствие этой функции не помогает…
Ответ №2:
Кажется, отлично работает в Visual Studio 2010. Я определил список как частное поле с комментарием внутри моего класса MainForm.
Однако они не будут работать для локальных переменных, определенных в функциях.
Комментарии:
1. в самом классе это работает. но попробуйте что-то документировать в методе. смотрите мой отредактированный первый пост
2. Да, это то, что я сказал в своем первом комментарии к вашему вопросу, вы не можете документировать переменные, определенные в самом методе.
3. было бы здорово, если бы это работало для локальных переменных уровня метода.. просто чтобы у вас был intellisense для вашего локального кода. Я имею в виду, почему бы и нет?
Ответ №3:
Насколько я знаю, добавление комментариев для intellisense не будет работать для локальных переменных, объявленных в функциях. Если бы вы хотели сделать свой локальный список переменной экземпляра класса, вы могли бы это сделать.
Ответ №4:
Точно так же, как вы пишете резюме для классов, и методы работают для переменных.
Ответ №5:
Вы можете добавлять такие комментарии к документации XML к любому члену класса, а не внутри члена (метода, свойства и т. Д.).
Ответ №6:
Редактировать: похоже, <var> поддерживается только для JavaScript.
Начиная с Visual Studio 2012, вы можете добавить эту документацию, используя элемент <var> .
Вот документация Microsoft по этому поводу:
https://msdn.microsoft.com/en-us/library/hh542722 (v = против 110).aspx
Комментарии:
1. К сожалению, связанная документация применима только к Javascript. Я пробовал использовать
<var>
локальную переменную как таковую, никакого эффекта.