4
我想根據給定的集合類型(使用反射)進行一些操作,而不考慮泛型類型。通用集合類型測試
這裏是我的代碼:
void MyFct(Type a_type)
{
// Check if it's type of List<>
if (a_type.Name == "List`1")
{
// Do stuff
}
// Check if it's type of Dictionary<,>
else if (a_type.Name == "Dictionary`2")
{
// Do stuff
}
}
它適用於現在,但它得到明顯,我認爲它不是最安全的解決方案。
void MyFct(Type a_type)
{
// Check if it's type of List<>
if (a_type == typeof(List<>))
{
// Do stuff
}
// Check if it's type of Dictionary<,>
else if (a_type == typeof(Dictionary<,>))
{
// Do stuff
}
}
我試過太多,它actualy編譯,但沒有工作... 我也試圖測試給出集合類型的所有接口,但它在集合意味着排他性的接口...
我希望我自己清楚,我的英語缺乏培訓:)
做'a_type.ToString()。'它說什麼? – 2012-04-27 18:04:16
我懷疑你正試圖解決錯誤的問題。向泛型代碼添加特定於類型的檢查是很臭的。 – n8wrl 2012-04-27 18:04:50
* a_type.ToString()=> System.Collections.Generic.List'1 [MyClass] – s0ubap 2012-04-27 18:08:57