[英]What does /*!*/ mean in C#?
我是C#的新手,正在使用/*!*/
在似乎很奇怪的地方读取代码。 例如,定义为:
protected override OptionsParser/*!*/ CreateOptionsParser()
protected override void ParseHostOptions(string/*!*/[]/*!*/ args)
不幸的是/*!*/
不可谷歌搜索。 这是什么意思?
可能是试图将Spec#样式注释添加到非Spec#构建中。 ! Spec#中的注释表示值不为空。 作者可能试图指出返回值,args数组和args中的所有元素始终都是非null值。
规格#链接:
快速规格#概述:
Spec#是通过Microsoft Research Project创建的.Net语言。 它是C#语言的扩展,试图将代码协定嵌入类型系统中。 最突出的是不可为null的类型(在类型名称后以!表示),检查的异常和前置/后置条件。
这是包含“!”的注释。
/ * * /中包含的任何内容都是注释,在代码编译时将忽略该注释。
我不特别了解C#,因为它可能是某种特殊的符号,但是我在支持开/关,多行注释标记的任何语言中都使用了类似的技术,使我可以使用以下命令快速注释和取消注释多行单个字符更改,如下所示:
/*!*/
this is live code (and will probably cause a compilation error)
/*!*/
/*!* /
this is commented code (and should never cause a compilation error)
/*!*/
的原因!
是因为像/**
这样的构造是文档工具使用的通用标记。
当语言支持单行注释标记时, //
还有其他技术(和(和实现它们一样,如C ++和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.
这是带有“!”的注释。 程序员可能想确保您注意到第一个方法返回了OptionsParser,第二个方法接收了一个字符串数组,而不仅仅是字符串。
您可以删除它们,它们将继续正常运行=)
这只是定句 ; 可能您的程序员刚刚标记了这些要点,以后再讨论。
/* is start comment
*/ is end comment
everything between is the comment
you can even tell that SO highlights that area as a comment
就像大家说的那样,这是一条评论。 另外,在我看来,“!” 用于分界。 它似乎有助于识别兴趣点,就像糖果一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.