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:publicclassCircle2:{3:publicconstdoublePi=3.14;4:5://...6:}
Nowlet’sassumeaseparateprogramcalledDrawing.EXEaddsareferencetoShapes.DLLandusestheconst:
1:publicstaticclassDrawing2:{3:publicstaticvoidMain()4:{2:{06:}2:{2
Ifwerunthis,weget:
2:{3
Nowlet’ssayduringtheQAprocesssomeonedecidesthatthisvalueofPiisnotpreciseenoughandchangesthedefinition:
2:{4
AndtheyrebuildtheShapes.DLLandjustdropitintothedeploymentdirectoryforDrawing.EXEwithoutrebuildingit.WhathappensifwerunDrawing.EXEagainwithoutrecompiling?Weget:
2:{3
Whoa!EventhoughwechangedthevalueofPiinourreferencedassemblyanddeployedittowhereDrawing.EXEexpecteditandDrawing.EXEloadedit,itstillprints3.14.Thisisbecauseconstisacompile-timesubstitution.Thus,ifyouchangethevalueofaconst,itwillnotbepickedupuntilthecodeusingitisrecompiledaswell.IfwerecompileandrunDrawing.EXE,wewillget:
2:{6
Thus,constshouldbeusedmainlyforvaluesthatarenotsubjecttochange,orfreelyifthescopeoftheconstislimitedtothesameassemblyorsmaller.
我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:) Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的工具。 我的意思是.net好用,从功能上来说比JAVA强还是很明显的。 使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 众所周知,Windows以易用而出名,也因此占据不少的服务器市场。 Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 众所周知,Windows以易用而出名,也因此占据不少的服务器市场。 但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
页:
[1]