|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你所列的那些其实差不多都可以称为应用服务器(servlet应该说是一种语言更合适)net网页编程是开放的,相同的工具就会有很多公司在做,加上net网页编程已经发展了很多年了,因此这些工具就很多了。他们很多都是类似的。系列文章索引:《口语C#》
我们进来用饭,老是喜好往人多买卖好的馆子,由于如许的馆子常常滋味和服务都对照好,而那些买卖冷僻的馆子常常置之不理。买卖好的馆子当然有其优点,但往如许中央就餐又老是必要先列队等地位,以是排号是对照盛行的体例。固然,假如这家馆子的坐位充分,就不必要排号,可是上菜又对照慢。不管如何,假如厨房一时半会儿没法做好你的菜,那末你就只好耐烦地守候,在这个时分你能够做本人的事变,跟伴侣谈天、玩手机大概看玉人,没有人会傻傻地站在厨房门口目不斜视地盯着厨师手中的锅铲直到做好本人的菜。
在软件开辟事情中,我们也经常会碰到相似的成绩,我们向某个服务器(或相似于服务器的工具)发送一个哀求,必要猎取到反应信息后才干持续某项事情,可是假如这项事情不是最主要的大概今朝独一的事情项,我们完整没有需要让这个守候历程拦阻全部软件的利用,假如如许做了,那将取得十分糟的用户体验,就像我们看到有人一动不动地站在厨房门口等菜一样。
C#供应了托付机制来完成异步处置,也就是说,你向服务器发送哀求今后就能够把精神用在做其余事变上,服务器前往哀求后使用程序会主动挪用你之前布置好的办法来处置接上去的事情。换句话说,你点好了菜,接上去就能够和伴侣谈天,厨房做好了菜不管是叫号仍是由服务员端到你桌下去,归正不必你再费心了。
上面我们先创立一个主顾类:- 3:publicintID{get;privateset;}
复制代码 在这个场景中,我们不必要付与Customer类太多属性,我们假定这家餐馆接纳的体例是叫号而不是由服务员把菜端到每一个主顾桌上,以是Customer类只需有个ID号就够了。
接上去我们来完成这个叫号的办法,固然很复杂,可是一定只要不是一家餐馆接纳这类体例,因而我们把这个办法放在独自的一个类内里:- 1:publicclassDelegateDemo
复制代码 然后我们来创立最主要的类,餐厅类:- 3:publicintID{get;privateset;}1
复制代码- 3:publicintID{get;privateset;}3
复制代码- 3:publicintID{get;privateset;}5
复制代码- 3:publicintID{get;privateset;}6
复制代码- 3:publicintID{get;privateset;}7
复制代码- 3:publicintID{get;privateset;}8
复制代码- 3:publicintID{get;privateset;}9
复制代码 在这个餐厅类内里,有一个主顾的汇合,暗示以后餐厅里一切的主顾,我们先往这个汇合内里塞10个主顾出来以备待会儿叫号。然后我们在这个类内里声了然一个托付EnumCustomerCallback,并限制了它的函数署名。要利用这个托付的函数就必需切合该托付的署名情势。比方,该餐馆接纳叫号的体例,也就是说我们要把DelegateDemo.CallCustomers办法传送给EnumCustomerCallback托付,因而它俩的函数署名是分歧的。然后我们还界说了一个EnumCustomers办法,该办法的以EnumCustomerCallback托付为参数。该办法实行的内容是挨个遍历以后一切主顾,至于遍历到每一个主顾是接纳甚么样的体例,叫号仍是有服务员端菜呢,取决于传送给以后托付的办法来实行。
好,接上去我们来实行这段代码看看效果:在这段代码的第4行,我们创立了一个托付实例callCustomers,并把叫号的办法DelegateDemo.CallCustomers传送给它坐位该餐馆上菜的体例。然后我们再把这个体例传送给该餐厅的遍历主顾的办法,让它在遍历到每一个主顾的时分接纳老板设定好了的体例往实行。
上面的截图就是以上代码实行的了局,喇叭里挨个叫出主顾的编号,关照他们往取餐:
<br>
接上去我们来先容一下事务机制,之以是把事务放在托付前面讲,是由于事务是在托付的基本上完成的。这一次我们站在厨师的角度来对待甚么是事务。
作为一个厨师,炒菜是最基础的事情内容,而关于餐厅的服务员来讲,能够拿着点菜单往叫厨师来炒菜,因而这就存在一个察看者形式,即公布和定阅的机制。服务员公布说:“主顾要个青椒肉丝”,厨师定阅说:“行,我即刻炒个青椒肉丝”。界说事务必要注重的是,事务必要两个参数,一是激发该事务的对象,本例中是卖力点菜的服务员;二是事务动静对象。个中,事务动静对象必需派生自System.EventArgs类。
因而我们先来计划一个点菜单作为事务动静类:在这个点菜单中,我们只包括了菜名和数目,由于关于厨师来讲,他只需晓得这两个基础信息就够了。接上去我们来界说这个厨师类:在厨师类中包括了一个Waitress对象,这暗示公布者,也就是叫厨师炒菜的服务员。第8行,厨师把本人增加进预订者列表,也就是说在服务员下票据的时分,厨房里得有现成的厨师才行,假如厨房里没有厨师,服务员公布了点菜事务也没人接招。
然后我们来看看事务的公布者,服务员:- 1:publicclassDelegateDemo0
复制代码 在这个服务员类内里,我们起首界说了一个带有两个参数的托付和一个事务。托付的两个参数一个是公布者对象,另外一个是事务信息对象。然后,服务员类还供应了一个点餐办法,点餐办法创立一个事务信息类(点菜单),假如事务的定阅者不为空,也就是说厨房里今朝有厨师,那末服务员就会把这个点菜单发送已往,而事务的定阅者会有专门的办法来处置这个事务。- 1:publicclassDelegateDemo3
复制代码- 1:publicclassDelegateDemo4
复制代码- 1:publicclassDelegateDemo6
复制代码- 1:publicclassDelegateDemo7
复制代码- 1:publicclassDelegateDemo8
复制代码 来自:http://www.ckuyun.com/Autumoon/archive/2008/07/05/1236346.html
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。 |
|