2013-08-28 45 views
-1

我有一個類:獲取使用類類型的typeof如果類具有通用arguement

public class test<T> {} 

我想獲得類的類型。我有泛型類型。我需要使用typeof。

這項工作?

Type genericType = typeof(System.Int32); 
typeof(test<>).MakeGenericType(new Type[] { genericType }) 

感謝您的幫助提前

+1

你試過了嗎? –

+0

是的,我做過。我實際上在反射中使用這個,但我不能100%確定它正常工作。原始問題實際上是通用接口。問題是:這是獲得類型的正確方法嗎? – Victor

+0

...那麼,什麼是問題......因爲你所嘗試過的東西適用於你所要求的。 –

回答

1
將這工作

是的(假設您在行尾添加了合適的分號,並將結果值賦值爲System.Type變量)。

例如,給定:

Type genericType = typeof(System.Int32); 
Type fullType = typeof(test<>).MakeGenericType(new Type[] { genericType }); 
Console.WriteLine(fullType); 

這將打印:

MyNamespace.test`1[System.Int32] 

這是完全合格類型的正確類型名稱。

+0

我問這個問題的原因是因爲我看到類似於:MyNamespace.test'1 [[System.Int32]]。 – Victor

相關問題