仓酷云

标题: ASP.NET网页设计const string 和 static readonly string的区分仓酷云 [打印本页]

作者: 柔情似水    时间: 2015-1-18 11:16
标题: ASP.NET网页设计const string 和 static readonly string的区分仓酷云
我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高net网页编程的运行效率。只是将net网页编程源代码进行简单的等价转换,而不假设编译成某种虚拟机器的目标格式,而由本地编译器针对性的二次编译。当跨assemblies的时分要出格注重二者的区分,请看这篇文章
ifthescopeofyourconstantislimitedtojustoneassembly,class,orsmaller(youcandefineaconstinsideamethod),thisisnotabigdeal.However,iftheconstisvisibleoutsidetheassemblyitisdefinedin,wemustbewary!Becausetheconst’svalueissubstitutedatcompiletime,thismeansthatiftheassemblythatdefinestheconstchangesitsvalue,butthecallingassemblyisn’trecompiled,thenthecallingassemblywillstillseetheoriginalvalue.
Let’sillustrate.AssumeaclasslibrarycalledShapes.DLLthatdefinesthis:

  1. 1:publicclassCircle
复制代码
  1. 2:{
复制代码
  1. 3:publicconstdoublePi=3.14;
复制代码
  1. 4:
复制代码
  1. 5://...
复制代码
  1. 6:}
复制代码

Nowlet’sassumeaseparateprogramcalledDrawing.EXEaddsareferencetoShapes.DLLandusestheconst:

  1. 1:publicstaticclassDrawing
复制代码
  1. 2:{
复制代码
  1. 3:publicstaticvoidMain()
复制代码
  1. 4:{
复制代码
  1. 2:{0
复制代码
  1. 6:}
复制代码
  1. 2:{2
复制代码

Ifwerunthis,weget:

  1. 2:{3
复制代码

Nowlet’ssayduringtheQAprocesssomeonedecidesthatthisvalueofPiisnotpreciseenoughandchangesthedefinition:

  1. 2:{4
复制代码

AndtheyrebuildtheShapes.DLLandjustdropitintothedeploymentdirectoryforDrawing.EXEwithoutrebuildingit.WhathappensifwerunDrawing.EXEagainwithoutrecompiling?Weget:

  1. 2:{3
复制代码

Whoa!EventhoughwechangedthevalueofPiinourreferencedassemblyanddeployedittowhereDrawing.EXEexpecteditandDrawing.EXEloadedit,itstillprints3.14.Thisisbecauseconstisacompile-timesubstitution.Thus,ifyouchangethevalueofaconst,itwillnotbepickedupuntilthecodeusingitisrecompiledaswell.IfwerecompileandrunDrawing.EXE,wewillget:

  1. 2:{6
复制代码

Thus,constshouldbeusedmainlyforvaluesthatarenotsubjecttochange,orfreelyifthescopeoftheconstislimitedtothesameassemblyorsmaller.
我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:)
作者: 飘灵儿    时间: 2015-1-18 16:10
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的工具。
作者: 若相依    时间: 2015-1-22 09:33
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
作者: 简单生活    时间: 2015-1-31 05:50
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
作者: 灵魂腐蚀    时间: 2015-2-6 17:33
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
作者: 再见西城    时间: 2015-2-12 19:49
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
作者: 深爱那片海    时间: 2015-3-3 05:23
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
作者: 愤怒的大鸟    时间: 2015-3-8 14:54
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
作者: 活着的死人    时间: 2015-3-16 02:33
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
作者: 只想知道    时间: 2015-3-22 18:48
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2