最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中實現(xiàn)判斷某個類是否實現(xiàn)了某個接口

 更新時間:2015年06月10日 10:39:41   投稿:junjie  
這篇文章主要介紹了C#中實現(xiàn)判斷某個類是否實現(xiàn)了某個接口,本文給出了多種判斷方法,需要的朋友可以參考下

有時我們需要判斷某個類是否實現(xiàn)了某個接口(Interface),比如在使用反射機制(Reflection)來查找特定類型的時候。

簡單來說,可以使用Type.IsAssignableFrom方法:

typeof(IFoo).IsAssignableFrom(bar.GetType());
typeof(IFoo).IsAssignableFrom(typeof(BarClass));

從字面意思可以看出,IsAssignableFrom表示BarClass類型能否賦值給IFoo接口,所以它返回true的條件就是BarClass直接或間接實現(xiàn)了IFoo接口。Type類型中還有一個方法是IsSubclassOf,它只能用于判斷類的繼承關系,比如

typeof(FooClass).IsSubclassOf(typeof(BarClass)) == true


表示FooClass是繼承自BarClass。

當然IsAssignableFrom也可以用來判斷繼承關系。

于是,對于以下的代碼:

interface I { /* ... */ }
class A : I { /* ... */ }
class B : A { /* ... */ }

IsSubclassOf和IsAssignableFrom的返回值為:

typeof(A).isAssignableFrom(typeof(I)); // false
typeof(A).isSubClassOf(typeof(I)); // false
 
typeof(I).isAssignableFrom(typeof(A)); // true
typeof(I).isAssignableFrom(typeof(B)); // true
typeof(B).isSubClassOf(typeof(I)); // false
 
typeof(A).isAssignableFrom(typeof(A)); // true
typeof(A).isSubClassof(typeof(A)); // false
 
typeof(A).isAssignableFrom(typeof(B)); // true
typeof(A).isSubClassof(typeof(B)); // false
 
typeof(B).isAssignableFrom(typeof(A)); // false
typeof(B).isSubClassof(typeof(A)); // true

相關文章

  • 淺談C# 中的委托和事件

    淺談C# 中的委托和事件

    本篇文章主要介紹C# 中的委托和事件,委托和事件在 .Net Framework中的應用非常廣泛,有興趣的可以了解一下。
    2016-12-12
  • 詳解C#中委托,事件與回調函數(shù)講解

    詳解C#中委托,事件與回調函數(shù)講解

    這篇文章主要介紹了詳解C#中委托,事件與回調函數(shù)講解,小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。
    2016-12-12
  • Unity實現(xiàn)簡單虛擬搖桿

    Unity實現(xiàn)簡單虛擬搖桿

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)簡單虛擬搖桿,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 使用C#發(fā)送帶附件的電子郵件的方法的代碼示例分析

    使用C#發(fā)送帶附件的電子郵件的方法的代碼示例分析

    這篇文章主要介紹了使用C#發(fā)送帶附件的電子郵件的方法的代碼示例分析,文中還提到了利用163的SMTP服務器發(fā)郵件的方法,需要的朋友可以參考下
    2016-02-02
  • C#中感嘆號(!) 的作用總結

    C#中感嘆號(!) 的作用總結

    這篇文章主要給大家總結介紹了C#中感嘆號(!) 的作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • c#實現(xiàn)爬蟲程序

    c#實現(xiàn)爬蟲程序

    這篇文章介紹了c#實現(xiàn)爬蟲程序的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 解析C#設計模式編程中外觀模式Facade Pattern的應用

    解析C#設計模式編程中外觀模式Facade Pattern的應用

    這篇文章主要介紹了C#設計模式編程中外觀模式Facade Pattern的應用,外觀模式中分為門面(Facade)和子系統(tǒng)(subsystem)兩個角色來進行實現(xiàn),需要的朋友可以參考下
    2016-02-02
  • 使用c#+IMap實現(xiàn)收取163郵件

    使用c#+IMap實現(xiàn)收取163郵件

    本文給大家推薦的是使用c#+IMap實現(xiàn)收取163郵件的具體方法和示例代碼,并附上了smtp郵箱發(fā)送郵件的代碼,有需要的小伙伴可以參考下
    2018-02-02
  • C# System.BadImageFormatException問題及解決

    C# System.BadImageFormatException問題及解決

    這篇文章主要介紹了C# System.BadImageFormatException問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • C#函數(shù)式編程中的惰性求值詳解

    C#函數(shù)式編程中的惰性求值詳解

    這篇文章主要介紹了C#函數(shù)式編程中的惰性求值詳解,本文講解了惰性求值的相關知識并給出代碼實例,需要的朋友可以參考下
    2015-01-01

最新評論

庄浪县| 枞阳县| 九龙坡区| 老河口市| 盈江县| 新昌县| 班玛县| 伊春市| 哈密市| 婺源县| 庄河市| 五河县| 凌源市| 九江县| 凤山县| 邓州市| 灯塔市| 泸水县| 休宁县| 怀宁县| 阜阳市| 华池县| 康乐县| 宕昌县| 巴林右旗| 靖安县| 罗甸县| 桐城市| 乐清市| 曲阜市| 江西省| 青河县| 云龙县| 鸡东县| 太白县| 扶绥县| 临邑县| 葫芦岛市| 四子王旗| 监利县| 新巴尔虎左旗|