c#-为什么在用“注释选择”注释多行选择时,Visual Studio为什么求助于单行注释?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-为什么在用“注释选择”注释多行选择时,Visual Studio为什么求助于单行注释?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2416字,纯文字阅读大概需要4分钟。
内容图文
![c#-为什么在用“注释选择”注释多行选择时,Visual Studio为什么求助于单行注释?](/upload/InfoBanner/zyjiaocheng/681/f3988a09c21b46b89c33b999f21a736c.jpg)
关于Visual Studio中的“注释选择”选项,我一直想知道的一些小知识(Ctrl K,Ctrl C).
当我注释此方法的实现时,将使用单行注释格式.
private void Foo()
{
//Bar b = new Bar();
}
当我注释来自构造函数的参数(部分行)时,使用分隔注释格式.
private void Foo(Qux q)
{
Bar b = new Bar(/*q*/);
}
在注释掉整个方法时会导致以下结果:
//private void Foo()
//{
// Bar b = new Bar();
//}
我觉得在最后一种情况下定界注释格式会更合适,因为该规范说:
Single-line comments extend to the end of the source line. Delimited comments may span multiple lines.
有谁知道为什么在Visual Studio中注释多行选择时将其选择为默认格式?
解决方法:
这样做会有一些问题:
如果任何代码行中都有* /,将无法正常工作:
private void Foo(Qux q)
{
//we use "*/image/*" flag here to find only images
Bar b = new Bar("Some wildcard: */image/*");
}
评论到:
/*
private void Foo(Qux q)
{
//we use "*/image/*" flag here to find only images
Bar b = new Bar("Some wildcard: */image/*");
}
*/
如果您在已经包含分隔注释的部分上单击“注释选择”,那么尝试使用分隔注释包装代码将不起作用:
/*
private void Foo(Qux q)
{
/* Some multiline
* comment
*/
Bar b = new Bar();
}
*/
但是很好,我们可以通过插入多个定界注释和单行注释的组合来解决此问题:
/*
private void Foo(Qux q)
{
/* Some multiline
* comment
*/
// */
/*
Bar b = new Bar();
}
*/
有点丑陋,但行得通.如果遇到该注释的代码,您是否能够立即识别出什么是代码部分以及注释部分是什么?此外,如果您按下“取消注释选择”命令,您是否知道要获得什么?
更进一步,想象一下,如果您评论此评论,它将变得更加丑陋且更加难以理解.
如果您在注释中的文本中带有* /,那么(我认为)解决/转义注释会变得更糟:
private void Foo(Qux q)
{
//we use "*/image/*" flag here to find only images
Bar b = new Bar("Some wildcard: */image/*");
}
转换为:
/*
private void Foo(Qux q)
{
//we use "**//*/image/*" flag here to find only images
Bar b = new Bar("Some wildcard: **//*/image/*");
}
/*
将上面令人困惑的注释代码与现有的单行实现进行比较:
//private void Foo(Qux q)
//{
// /* Some multiline
// * comment
// */
// Bar b = new Bar();
//}
//private void Foo(Qux q)
//{
// //we use "*/image/*" flag here to find only images
// Bar b = new Bar("Some wildcard: */image/*");
//}
这样做的好处是代码与之前的样子几乎是1:1,只是以//字符作为前缀.如果您进一步评论或取消评论,它仍然是完全可读的并且仍然是完全可预测的.嵌套单行注释或嵌套定界注释都没有问题.
也许最后,从IDE的角度来看,它的实现非常非常简单:“注释选择”意味着向每行添加//前缀,“注释取消”意味着删除前一个//.绝不嘲笑解析代码/注释,或者解析不正确的语法代码/注释.
内容总结
以上是互联网集市为您收集整理的c#-为什么在用“注释选择”注释多行选择时,Visual Studio为什么求助于单行注释?全部内容,希望文章能够帮你解决c#-为什么在用“注释选择”注释多行选择时,Visual Studio为什么求助于单行注释?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。