2012-10-21 34 views
6

我有一個簡單的函數:的GetType將返回RuntimeType

public string getType(object obj){ 
Type type = obj.getType(); 
return type.FullName; 
} 

如果您使用此函數的字符串對象,這是在運行時創建的,該函數返回「System.RuntimeType」 ...

但它應該返回「System.String」...

+1

我們幫不了你,除非你告訴我們,什麼是呼喚你的'getType'方法,以及傳遞給它的內容。 –

+0

'getType',是我希望的錯字。 – gdoron

+0

對於typeOf方法,任何傳遞的對象都可以創建。例如字符串,int,MyClass1,MyClass2 ... – bitwave

回答

15

如果你這樣稱呼它 -

string a = ""; 
string type = getType(a); 

它將返回System.String

但是,如果你這樣調用 -

string a = ""; 
string type = getType(a.GetType()); 

然後,它會返回System.RuntimeType

此外,還有小typo在你的方法 -

Type type = obj.getType();應該Type type = obj.GetType();

3

我想你會這樣稱呼它:getType(typeof(string))typeof(abc)是類型Type(或RuntimeType這是一個實現細節)的值。

這樣稱呼它:

getType("")

相關問題