仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 732|回复: 9
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计const string 和 static readonly string的区分仓酷云

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-10 06:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表