2014-09-18 75 views
1

我想比較兩個Type對象是否相等,忽略它們的類型參數比較非通用類型

例如,比較IEnumerable<int>IEnumerable<string>回報,這是有道理的,但我只是想給IEnumerable元素進行比較。

我該怎麼做TypeTypeInfo

+1

只是一個術語說明,爲了更輕鬆地與C#社區連接:我們稱「reified」類型爲「closed」,非reified類型爲「open」。見ECMA-334 25.5.2。 – codekaizen 2014-09-18 20:08:39

回答

3

您可以撥打GetType().GetGenericTypeDefinition();以獲取通用基本類型。

+2

如果您需要比較可能或不可泛型的任意類型,請在調用'GetGenericTypeDefinition()'之前檢查'GetType()。IsGenericType',因爲它會引發非泛型類型。 – 2014-09-18 19:38:26