2011-05-10 55 views
9

這是確定foo是相同或類型T確定類x是否從類y派生的最簡單方法? (C#)

bool Derives<T>(object foo) 
{ 
    return foo is T; 
} 

和精確匹配得出是最簡單的方式

bool ExactMatch<T>(object foo) 
{ 
    return foo.GetType() == typeof(T); 
} 
+1

答案是否必須考慮接口(例如。是從'ICollection'派生的'ArrayList'? ICollection是否來自IEnumerable?)?它是否需要考慮泛型?如果是這樣,它應該如何處理泛型類型參數(例如,從'IList '派生的'List '?是從'List '派生的'List '?)? – Jon 2011-05-10 10:54:49

+0

由於'RuntimeType'問題,ExactMatch無法工作 – Dani 2011-05-10 11:00:16

+1

RuntimeType問題,如...? – acron 2011-05-10 11:06:36

回答

6

我想不出一個更簡單的方式:)

(並在'答案'格式,以取悅巨魔:「是」)

+2

這是'正確答案。 – Jodrell 2011-05-10 10:55:49

+0

這不是一個答案 – Dani 2011-05-10 11:02:26

+1

3 upvotes一個有趣的報價! ! – V4Vendetta 2011-05-10 11:06:42

相關問題