6

私は以下を返したいですtrue

var isIt = IsDisposable(typeof(TextWriter));

どこ:

bool IsIDisposable(Type t){
    ??? 
    // I tried:
    //return t.IsSubclassOf(typeof(IDisposable)); //returns false
    // the other t.IsXXX methods don't fit the requirement as far as I can tell
}
4

2 に答える 2

14

使用できますIsAssignableFrom

bool IsDisposable = typeof(IDisposable).IsAssignableFrom(typeof(TextWriter));

デモ

于 2013-02-28T15:11:58.983 に答える
6

私はそれを見つけました:Type.GetInterfaces()は私が必要とするものです:

bool IsIDisposable(Type t){
    return t.GetInterfaces().Contains(typeof(IDisposable));
}

ドキュメントから、次をType.GetInterfaces()返します。

Type:System.Type[]現在のTypeによって実装または継承
された すべてのインターフェイスを表すTypeオブジェクトの配列。

于 2013-02-28T15:11:39.227 に答える