欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
委托入門(mén)(第一章)
這幾天認真研究了C#的委托與事件,下面對研究的知識總結一下,N年后找出來(lái)看一下應該也不錯。

  歷史上,Windows API經(jīng)常使用C語(yǔ)言風(fēng)格的函數指針來(lái)創(chuàng )建稱(chēng)為回調函數或簡(jiǎn)稱(chēng)為回調的實(shí)體。使用回調,碼農可以使一個(gè)函數返回報告給(即回調)程序中的另一個(gè)函數。

  在.NET Framework里,回調仍是可能的,它們的功能是由使用更為安全和面向對象的委托(delegate)來(lái)完成的。本質(zhì)上來(lái)講,委托是一個(gè)類(lèi)型安全的對象,它指向程序中另一個(gè)以后會(huì )被調用的方法(或多個(gè)方法)。委托類(lèi)型包含3個(gè)得要的信息:

  當一個(gè)委托被創(chuàng )建并提供了上述信息后,它可以在運行時(shí)動(dòng)態(tài)調用其指向的方法??梢钥吹?,.NET Framwwork中每個(gè)委托(包括自定義委托)都被自動(dòng)賦予同步或異步訪(fǎng)問(wèn)方法的能力,可以不用手工創(chuàng )建與管理一個(gè)Thread對象而直接調用另一個(gè)輔助執行線(xiàn)程上的方法,這大大簡(jiǎn)化了編程工作。

  使用C#定義委托:假定我們要創(chuàng )建一個(gè)名為BinaryOp的委托,它可以指向任何輸入兩個(gè)整數返回一個(gè)整數的方法:

  public delegate int BinaryOp(int x,int y);

  當C#編譯器處理委托類(lèi)型時(shí),它先自動(dòng)產(chǎn)生一個(gè)派生自System.MulticastDelegaet的密封類(lèi)。這個(gè)類(lèi)與它的基類(lèi)System.Degelate 一起為委托提供必要的基礎設施,以維護以后將要調用方法的列表。

  寫(xiě)著(zhù)寫(xiě)著(zhù)突然沒(méi)電,沒(méi)保存,比改需求還痛苦,沒(méi)辦法,只能重來(lái)。

  如果我們通過(guò)ildasm.exe來(lái)查看BinaryOp委托可以看到,生成的BinaryOp類(lèi)定義了三個(gè)公共方法。Invoke()可能是核心方法,因為它被用來(lái)以同步方式調用委托類(lèi)型維護的每個(gè)方法。BeginInvoke()和EndInvoke()方法能在第二個(gè)執行線(xiàn)程上異步調用當前方法。

  編譯器是如何確切知道怎樣定義Invoke()、BeginInvoke()和EndInvoke()方法的呢?欲知后事如何,請看下面代碼:

  初次接觸委托可能會(huì )感覺(jué)很難。不要緊,接下來(lái),讓我們看一個(gè)非常簡(jiǎn)單的使用BinaryOp委托的示例,我們以前見(jiàn)過(guò),這是一個(gè)名為Simple Delegate的控制臺應用程序項目。

  .net委托是類(lèi)型安全的。所以如果讀者試圖將一個(gè)不匹配模式的方法傳入委托,將會(huì )收到編譯期錯誤。例如,假定SimpleMath類(lèi)定義了一個(gè)名為SquareNumber()的方法:

  由于BinaryOp委托公可指向帶有兩個(gè)整數參數并返回一個(gè)整數的方法下面這段代碼是非法的,將無(wú)法編譯:

   委托對象

  我們在program類(lèi)型中創(chuàng )建一個(gè)名為DisplayDegelateInfo()的靜態(tài)方法豐富當前的示例。這個(gè)方法將輸出傳入的委托類(lèi)型所維護的方法的名稱(chēng)和定義該方法的類(lèi)的名稱(chēng)。通過(guò)迭代由GetInvocationList()返回的System.Delegate數組,調用每個(gè)對象的Target和method屬性:

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
多線(xiàn)程(一):異步委托
關(guān)于委托和事件的使用
C#線(xiàn)程中安全訪(fǎng)問(wèn)控件(重用委托,避免繁復的delegate,Invoke)總結
C#異步調用四大方法詳解
C#委托的異步調用
C#異步調用的好處和方法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久