繁体   English   中英

/ *!* /在C#中是什么意思?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM