3
在C#3.5中使用反射來確定對象的類型是否有任何方法List<MyObject>
? 例如這裏:確定C#中的列表類型
Type type = customerList.GetType();
//what should I do with type here to determine if customerList is List<Customer> ?
感謝。
在C#3.5中使用反射來確定對象的類型是否有任何方法List<MyObject>
? 例如這裏:確定C#中的列表類型
Type type = customerList.GetType();
//what should I do with type here to determine if customerList is List<Customer> ?
感謝。
要添加到盧卡斯的反應,你可能會想有點防守通過確保你實際上確實有List<something>
:
Type type = customerList.GetType();
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))
itemType = type.GetGenericArguments()[0];
else
// it's not a list at all
編輯:上面的代碼表示, '這是什麼樣的名單?'。要回答「是這個List<MyObject>?
」,使用is
操作正常:
isListOfMyObject = customerList is List<MyObject>
或者,如果你已經是一個Type
:
isListOfMyObject = typeof<List<MyObject>>.IsAssignableFrom(type)
Type[] typeParameters = type.GetGenericArguments();
if(typeParameters.Contains(typeof(Customer)))
{
// do whatever
}
感謝您的答覆 – Victor 2010-07-22 18:44:36