Что означает /*! */Означает в С#?
Я новичок в С# и читаю код с /*!*/
в том, что кажется странным. Например, методы класса, определенные как:
protected override OptionsParser/*!*/ CreateOptionsParser()
protected override void ParseHostOptions(string/*!*/[]/*!*/ args)
К сожалению, /*!*/
не работает. Что это значит?
Ответы
Ответ 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, а второй получил массив строк, а не только строку.
Вы можете удалить их, и они продолжат работать нормально =)
Ответ 5
Это просто комментарий с разделителями; вероятно, ваш программист только что отметил, что пункты для обсуждения позже.
Ответ 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
Как все сказали, это комментарий. Кроме того, мне кажется, что '!' используется для демаркации. Похоже, что это помогает выявлять точки интереса и служит в качестве глазных конфет.