关于VS.NET中注释的一点小话题

昨天下午公司项目组的一周总结会上,项目经理说到了组成员写注释的问题,他说到很多程序
员都不愿写注释,项目的首席设计师立即表示反对,我当时感到特别奇怪。写注释现在已经公认的了,还有什么要反对的。下面是设计师反对的意见:
如果一个系统中注释过多,编译成DLL后会使DLL的尺寸增大,从而影响的系统的性能。。。加注释可以,但是一定要在注释前后加入#if debug ;#end debug ,表示在最后release版本的时候DLL中才不会有注释。

听到这些话,我当时一下子懵了,因为写注释已经成为我的习惯,难道所有的注释前后还要加上debug这些东东?设计师的思维可真细啊,我怎么就没想到呢。。。我还真不知道注释到底会不会使DLL的尺寸增大。好像。。。好像。。。真的会增大吧。。。。


后来晚上回来后一想,注释应该不会被加到DLL中去的,理由有二:

1 vs.net的xml注释///能够被工程抽取出来形成xml注释文档,那么vs.net在编译的时候也有能力把这些///删除掉,从而不会增大DLL尺寸阿。毕竟谁也不愿意DLL很大啊

2 从reflector中disassembler中的代码也从来没看到注释阿,毕竟Reflector是从dll中反编译出来的,为了让阅读者更清楚地分析原代码,如果DLL中有注释的话,Reflector肯定也会把注释显示出来阿

多想不如实践一下:

新建一个webApplication,准备十万行的///,十万行的//,和十万行的const string。

情况一:如果在webform1.aspx.cs中加入十万行的const string,不容置疑,DLL从没加之前的24K飙升到364K,而且编译速度变慢
情况二:如果在webform1.aspx.cs中加入十万行的///注释,发现DLL根本就没有发生尺寸的变化,编译速度也没有受到影响,无论是debug还是release
情况三:如果在webform1.aspx.cs中加入十万行的//注释,发现DLL根本就没有发生尺寸的变化,编译速度也没有受到影响,无论是debug还是release

实践说明: vs.net在编译过程中,会把cs文件中的///和//抽取掉,然后再编译。
结论: 在cs中如果加入注释,是不会影响DLL的尺寸的。vs.net会编译时自动抽取掉。呵呵,看来我还是可以放心大胆的用注释了,哈哈。但是如果在ASPX中加入注释,我想还是会影响页面的响应速度的。毕竟ASPX是即时解释的。


你可能感兴趣的:(.net)