Як уникнути символів у коментарях c #?


112

Сьогодні я зрозумів, що не знаю, як уникнути символів у коментарях для C #. Я хочу документувати загальний клас C #, але не можу написати належного прикладу, оскільки не знаю, як уникнути символів <та >символів. Чи потрібно використовувати &lt;і &gt;? Мені не подобається, якщо це так, оскільки я хочу спростити читання коментаря у фактичному документі, тому мені не потрібно генерувати якийсь документ з кодом, щоб можна було прочитати приклад коду.


1
Чи можете ви показати приклад коментаря?
BoltClock


1
@Mark: Ти маєш рацію, але це не тільки XML ... Я намагався написати приклад для генерики, яка не є XML, але вона використовує '<' і '>'. Але рішення однакове для обох.
Томаш Янссон

Враховуючи популярність шаблонів у C ++, Java, C # ..., яке можливе виправдання має Microsoft для використання напівзапечених розмежувачів XML? Звичайна відсутність ясності та передбачуваності.
Рік О'Шей

Відповіді:


141

Якщо вам потрібно уникнути символів у коментарях XML, вам потрібно використовувати символьні об'єкти, так <що вам потрібно буде уникати так &lt;, як у вашому запитанні.

Альтернативою втечі є використання CDATAрозділів, з тим же ефектом.

Як ви зазначали, це може створити гарну документацію, але прочитати жахливий коментар ...


19
Просто для довідки <було б &lt;і >було б &gt;. Як приклад,List&lt;string&gt; myStringList = new List&lt;string&gt;();
Арво Боуен

@ArvoBowen На всякий випадок, якщо хтось пропустив очевидне, lt/ позначають відповідно gt"менше" / "більше".
Лукаш Юріх

1
Цікаво, що тільки <потрібно , щоб відбувся &lt;, >може залишитися , як це: List&lt;string> myStringList = new List&lt;string>();. Принаймні, це працює в інтелігенції. Як не дивно, CDATA він не працює в інтелігенції. Я не перевірив, як це виглядає в автоматично створених документах.
Пітер Хубер

Може підтвердити, що VS 2013 не надає CDATAінтелігенцію. &lt;робить коментар важким для читання.
Олексій

52

У звичайних коментарях C # ви можете використовувати будь-який символ (за винятком випадків, */коли ви починали коментар /*, або символ нового рядка, якщо ви починали з коментаря //). Якщо ви використовуєте коментарі XML, тоді ви можете використовувати розділ CDATA, щоб включити символи '<' та '>'.

Дивіться цю статтю в блозі MSDN для отримання додаткової інформації про коментарі XML на C #.


Наприклад

/// <summary>
/// Here is how to use the class: <![CDATA[ <test>Data</test> ]]>
/// </summary>

12
Ви, мабуть, правильні, якщо хочете створити приємно виглядаючі html-документи, але мені цікавіше правильне підказки щодо інтелігенції у VS, і для цього здається, що мені потрібно використовувати втечу XML. Але +1 за альтернативу.
Томаш Янссон

2
Хм, нерозбірливий машинний сміття в моїх коментарях допомагає лише, якщо ми знайдемо час, щоб створити наш файл документа, коли величезна, величезна, обширна (чи я згадувала величезну?) Більшість випадків використання читає коментарі у джерелі (бажано інтерфейс) .
Рік О'Шей

19

Ви сказали: "Я хочу спростити читання коментаря у фактичному документі". Я згоден.

Розробники проводять більшу частину свого життя в коді , не переглядаючи автоматично створені документи. Вони чудово підходять для бібліотек третьої сторони, як графік, але не для внутрішньої розробки, де ми працюємо з усім кодом. Я в шоці, що MSFT не придумав рішення, яке краще підтримує розробників. У нас є регіони, які динамічно розширюють / згортають код ... чому ми не можемо мати перемикання на місці виведення коментарів (між необробленим текстом та обробленим XML-коментарем або між необробленим текстом та обробленим HTML-коментарем) ?. Здається, я повинен мати деякі елементарні можливості HTML у моїх коментарях до методу / класу прологі (червоний текст, курсив тощо). Безумовно, IDE може працювати трохи HTML-магії обробки, щоб оживити вбудовані коментарі.

Моє рішення щодо хакерського рішення : я змінюю "<" на "{" і ">" на "}". Це, здається, охоплює мене для типового коментаря щодо стилю використання, включаючи ваш конкретний приклад. Недосконалий, але прагматичний враховуючи проблему читабельності (та проблеми із забарвленням коментарів IDE, що виникають при використанні '<')


5
Ваш "хак рішення" здається правильнішим, ніж ви думаєте. Відповідно до цього компілятор розпізнає фігурні фігурні фігурні дужки як кутові дужки та правильно пов'язує їх .
RubberDuck

8

C # XML коментарі записуються у XML, тому ви б використовували звичайний пропуск XML.

Наприклад...

<summary>Here is an escaped &lt;token&gt;</summary>

5

Я знайшов приємне рішення цієї проблеми, просто включивши два приклади: одну важко читаючу версію у коментарях XML без символів та іншу читану версію з використанням звичайних //коментарів.

Простий, але ефективний.


0

Краще, ніж використовувати {...} - використовувати ≤ ... ≥ (знак менше або рівний, більше або дорівнює знаку, U2264 та U2265 в Unicode). Схоже, підкреслені кутові дужки, але все одно безумовно кутові дужки! І лише додає пару байтів у ваш файл коду.


0

Ще краще спробуйте U2280 та U2281 - просто скопіюйте та вставте зі списку символів Unicode (розділ математичних операторів).


Оператори Unicode в порядку, коли вони використовуються для представлення фактичних математичних операторів, погані, якщо вони використовуються в фрагментах коду, які трапляються в коментарі (наприклад List<int>). Подумайте, наприклад, копіювання вставлення фрагмента коду.
Палець

чи можете ви навести приклад того, як це використовувати в коментарі? ніколи не використовував символів Unicode
ClementWalter

1
Скопіюйте та вставте символ, як описано вище.
Пол Кульсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.