一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

淺談.Net中容易混淆的委托和接口

  本文適合對委托和接口概念非常了解的朋友,并且歡迎各位朋友與Snake一起探討有關這方面的知識.本文不適合對委托和接口概念或用途了解一知半解(模糊)的朋友,這篇文章可能會對您產生誤導,請千萬別看.

  在文章正式開始之前我需要將MSDN上對委托和接口的內容放上來,作為文章之基.

  委托:

  委托是一種定義方法簽名的類型。當實例化委托時,您可以將其實例與任何具有兼容簽名的方法相關聯。您可以通過委托實例調用方法。

  委托用于將方法作為參數傳遞給其他方法。事件處理程序就是通過委托調用的方法。您可以創建一個自定義方法,當發生特定事件時某個類(例如 Windows 控件)就可以調用您的方法.

  委托具有以下特點:

  委托類似于 C++函數指針,但它們是類型安全的。

  委托允許將方法作為參數進行傳遞。

  委托可用于定義回調方法。

  委托可以鏈接在一起;例如,可以對一個事件調用多個方法。

  方法不必與委托簽名完全匹配。有關更多信息,請參見在委托中使用變體(C#和 Visual Basic)。

  C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作為參數傳遞,以代替單獨定義的方法。C# 3.0 引入了 Lambda 表達式,利用它們可以更簡練地編寫內聯代碼塊。匿名方法和 Lambda 表達式(在某些上下文中)都可編譯為委托類型。這些功能統稱為匿名函數。有關 Lambda 表達式的更多信息,請參見Anonymous Functions (C# Programming Guide)。

  接口:

  接口描述的是可屬于任何類或結構的一組相關功能。接口可由方法、屬性、事件、索引器或這四種成員類型的任意組合構成。接口不能包含字段。接口成員一定是公共的。

  當類或結構繼承接口時,意味著該類或結構為該接口定義的所有成員提供實現。接口本身不提供類或結構能夠以繼承基類功能的方式繼承的任何功能。但是,如果基類實現接口,派生類將繼承該實現。

  類和結構可以按照類繼承基類或結構的類似方式繼承接口,但有兩個例外:

  類或結構可繼承多個接口。

  類或結構繼承接口時,僅繼承方法名稱和簽名,因為接口本身不包含實現。

  接口具有下列屬性:

  接口類似于抽象基類:繼承接口的任何非抽象類型都必須實現接口的所有成員。

  不能直接實例化接口。

  接口可以包含事件、索引器、方法和屬性。

  接口不包含方法的實現。

  類和結構可從多個接口繼承。

  接口自身可從多個接口繼承。

  正文開始

  在寫這些文字的時候我又將以上的各個概念熟悉了一遍,以防自己把自己忽悠混淆了.所以不適合群眾請盡快退散.另外如果您看完上面的定義和特征后就從兩者的混淆中走了出來,您也可以嘗試繼續往下看.

  首先,關于委托的用法,我們可以這樣使用:

public int Calculate(Func del){ int a = 1, b = 2; return del(a, b); }

NET技術淺談.Net中容易混淆的委托和接口,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 色播亚洲精品网站 亚洲第一 | 成人激情视频网站 | 深夜影院深a入口 | 美女福利视频一区 | 岛国大片免费看 | 亚洲一区二区三区四区在线 | 国产综合成人亚洲区 | 国产a级精品特黄毛片 | 国产精彩视频在线观看 | 国产在线永久视频 | 亚洲视频四区 | 亚洲一区二区观看 | 国产在线综合一区二区三区 | 婷婷伊人五月天 | 麻豆高清| 国产精品第一页第一页 | 亚洲一区二区三区久久精品 | 1区2区3区4区产品乱码入口 | 国语高清精品一区二区三区 | 国产精品视频一区二区三区w | 久久不卡一区二区三区 | 色播.com| 国产色婷婷免费视频 | 精品国产乱码久久久久久浪潮 | 亚洲视频在线观看一区 | 久久综合九色综合欧洲 | 色狠狠综合网 | 99久久国产综合精品网成人影院 | 亚洲激情在线视频 | 91在线播放免费不卡无毒 | 欧美日韩加勒比一区二区三区 | 欧美成人精品欧美一级乱黄 | 日本欧美强乱视频在线 | 欧美特级视频 | 午夜一级做a爰片久久毛片 午夜影院日韩 | 国产精品免费一区二区三区 | 久久国产精品一区二区三区 | 麻豆国产精品视频 | 日本红怡院在线 | 大香网伊人久久综合观看 | 一本大道久久a久久综合 |