2012-10-21 14 views
6

ho una semplice funzione:GetType da oggetto sta tornando RuntimeType

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

Se si utilizza questa funzione su un oggetto stringa, che è stato creato in fase di esecuzione, la funzione restituisce "System.RuntimeType" ...

Ma deve restituire "System.String" ...

+1

Non possiamo aiutarvi a meno che non mostrarci ciò che sta chiamando il 'getType' metodo, e esattamente ciò che è passato ad esso. –

+0

'getType', è un refuso che spero. – gdoron

+0

Al metodo typeOf è qualsiasi oggetto passato, che può essere creato. per esempio. string, int, MyClass1, MyClass2 ... – bitwave

risposta

15

Se si chiama in questo modo -

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

tornerà System.String

ma se si chiama così -

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

Poi tornerà System.RuntimeType

Inoltre, v'è piccolo typo nel metodo -

Type type = obj.getType(); dovrebbe essere Type type = obj.GetType();

3

Credo che si chiama in questo modo: getType(typeof(string)). typeof(abc) è un valore di tipo Type (o RuntimeType che è un dettaglio di implementazione).

chiamare in questo modo:

getType("")