ASP.NET网页编程之口语C#:反射仓酷云
据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。系列文章索引:《口语C#》反射是一种晚绑定,它能够被开辟者用来计划出更具天真性的代码,而价值则是消费更多的体系资本开支使得使用程序能够在运转时猎取一些未知信息。
说白了,在编写代码的时分,开辟者大概还不晓得或不克不及断定一些对象的信息,因而把决意权交给代码自己,未来在必要的时分由代码本人往猎取和判别这些信息并作出响应的反响。如许的体例当然可使代码加倍天真,但在想要利用反射的时分,必需先思索幸亏功能与天真之间的一个衡量,不克不及自觉地由于C#供应了反射机制就一个劲儿地用,我们应当发扬JohnCarmack“榨干PC机3D图象功能”的精力,而不要由于硬件愈来愈廉价就让呆板背负极重的累赘往做一些意义不年夜的事变。
我们仍是持续本系列一向的作风,用生存中的例子来说解甚么是反射和反射的基础利用体例。
我先问人人一个成绩:“《集结号》中谷子地穿的南朝鲜礼服从哪儿来?”明显不是一时找成衣赶制的,一定是从俘虏身上扒上去的。好,那我们就来增补一点儿《集结号》的镜头看看甚么是反射。
一天薄暮,一位又饥又渴的南朝鲜落伍兵士在乡下巷子上盘跚地走着,他乃至都快扛不出发上的枪了,也不晓得步队在那里,只好认准一个偏向勉力寻觅。“不准动!”从路边草丛中跳出的两名匿伏着的中国兵士喝道,这名南朝鲜兵士原本就精疲力尽,哪受得了这番惊吓,事先就一屁股坐在地上了。中国兵士把他押回营部并向下级呈报,他们在四周巡查的时分不测俘获一位南朝鲜落伍兵士,听候处理。
这件事变被上报到王团长那边,王团长正拿着缩小镜跟几名军官在舆图前研讨作战计划,听到这件事,不紧不慢地跟他身旁的高连长说道:“高诚啊,你往看看,没啥年夜成绩就送到前方战俘营往。”“是!”高连长接到命令便回身进来了。
高连长离开一件狭窄的房间,那名南朝鲜兵士正半躺在地上,手里拿着中国兵士给他的馒头和水,一口一口地嚼着,看到高连上进来了,眼睛里吐露出严重和害怕的模样形状。高连长复杂先容了中国方面善待俘虏的政策,便入手下手过堂他——注重,反射入手下手了!
“哪儿的?”“团结国军李承晚系军队3团2排1班。”
“叫甚么名字?”“思密达。”
“此次实行甚么义务?”“潜进贵军阵地并指引炮兵举行射击。”
……
一番软硬兼施以后,高连长把握了这个小兵一切的信息,收拾好质料往跟王团长报告往了,而这个小兵被带到一个小房子里持续啃馒头往了,身上的行头也被换了上去,换上了专门为战俘筹办的棉衣。
高连长一手拿着笔录质料,一手拎着南朝鲜兵士的全套行头往见了王团长,报告以后王团长会意地笑了:“小高啊,不错,你父亲现在把你交给我,我就叫他宁神,你是块好料子,怎样,我没说错吧,呵呵,不外你也莫要自满,我们不克不及轻敌,如许,你带着这身行头往找谷子地,叫他换上以后连夜潜进敌方阵地,仇人不是想拿炮弹砸我们吗,那我们就用他们的体例,先下手为强,让老谷指引我军炮火嫡清晨倡议总攻。”
谷子地换上了这身洋行头,揣了半条烟就动身了,他潜进敌方阵地后冷清地取出仇人的千里镜举行了严密地察看,并经由过程无线电给前方友军传送射击参数,乐成地引诱我军获得了此次严重成功。
下面的故事变节形貌得有点儿多了,赶忙来看代码吧,起首,我们得有个不利的南朝鲜兵士做引子:
1:namespaceUN2:{3:internalclassSouthKoreaArmy4:{5:publicstringName{get;set;}6:7:publicstringSearch(stringdestination)8:{9:return"OK,fire!";10:}2:{02:{1然后,我们用代码来完成谷子地所完成的举动:
2:{22:{2:{44:{2:{62:{72:{82:{93:internalclassSouthKoreaArmy010:}2:{0这段代码很好了解,第5行我们过堂了被俘的南朝鲜兵士并失掉了他供应的信息和打扮,然后让老谷用他的打扮化妆成南朝鲜兵士。第7行,小样,你不是想侦察我吗,好,咱就来个以眼还眼,用你的体例来弄定你!接上去,谷子地潜上天方阵地并引诱了我军倡议总攻。
这里展现了反射的一些基础使用,比方猎取范例信息、使用猎取的范例静态天生对象,并静态挪用其办法。固然,反射机制能做的事变不单单是这几样,不外方针都一样,由程序本人往猎取信息、做出反响。在不必忧虑功能开支的情形下,反射可使你的程序加倍天真壮大!
来自:反射
以前很热炒跨平台,主要是由于硅谷挑战微软霸主地位的热情,但是冷静下来后,跨平台往往不是那么一回事。假设你有个软件,所谓的跨平台,你只需要为第二个平台上重新编译一次就行了,这样很难么? 由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。 那么,ASP.Net有哪些改进呢? 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
页:
[1]