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

Что означает /*! */Означает в С#?

Я новичок в С# и читаю код с /*!*/ в том, что кажется странным. Например, методы класса, определенные как:

protected override OptionsParser/*!*/ CreateOptionsParser()
protected override void ParseHostOptions(string/*!*/[]/*!*/ args)

К сожалению, /*!*/ не работает. Что это значит?

4b9b3361

Ответ 1

Вероятно, попытка получить аннотации стиля SpeС# в не-SpeС# build.! аннотация в SpeС# означает, что значение не-null. Вероятно, автор пытается указать, что как возвращаемые значения, массив args, так и все элементы в args всегда являются ненулевыми значениями.

SpeС# Link:

Обзор Quick SpeС#:

SpeС# - это .Net-язык, созданный с помощью Microsoft Research Project. Это расширение языка С#, которое пытается встраивать кодовые контракты в систему типов. Наиболее видными являются типы с недействительными (обозначаются символом! После имени типа), отмечены исключения и условия до/после.

Ответ 2

Это комментарий, содержащий '!'

Все, заключенное в /* */, является комментарием, который будет игнорироваться при компиляции кода.

Ответ 3

Я не знаю о С# специально, поскольку это может быть специальная нотация для чего-то, но я использую подобный метод на любом языке, который поддерживает открытые/закрытые многострочные токены комментариев, чтобы я мог быстро комментировать и раскомментировать несколько строк с одним изменением символа, например:

/*!*/
this is live code (and will probably cause a compilation error)
/*!*/

/*!* /
this is commented code (and should never cause a compilation error)
/*!*/

Причина для ! заключается в том, что конструкции, подобные /**, являются обычными токенами, используемыми инструментами документации.

Существуют и другие методы, когда язык поддерживает однострочные токены комментариев, // (и реализует их как С++ и Java):

///* - opening comments can be commented-out so what follows isn't a comment.
this is live code
//*/ - closing comment are not commented-out by single-line comments.

Итак, вы можете удалить первый однострочный токен комментария, //, чтобы создать своего рода "переключение":

/* this is now commented.
this is also commented.
//*/ this line is live code.

Ответ 4

Это комментарий с '!'. Вероятно, программист хотел удостовериться, что вы заметили, что первый метод возвратил OptionParser, а второй получил массив строк, а не только строку.

Вы можете удалить их, и они продолжат работать нормально =)

Ответ 6

/* is start comment
*/ is end comment

everything between is the comment
you can even tell that SO highlights that area as a comment

Ответ 7

Как все сказали, это комментарий. Кроме того, мне кажется, что '!' используется для демаркации. Похоже, что это помогает выявлять точки интереса и служит в качестве глазных конфет.