2012-10-21 29 views
6

Tôi có một chức năng đơn giản:GetType từ đối tượng đang trở lại RuntimeType

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

Nếu bạn sử dụng chức năng này trên một đối tượng chuỗi, đã được tạo vào thời gian chạy, trở về chức năng "System.RuntimeType" ...

Nhưng phải trả lại "System.String" ...

+1

Chúng tôi không thể giúp bạn, trừ khi bạn cho chúng ta thấy những gì đang kêu gọi 'bạn getType' và chính xác những gì được truyền cho nó. –

+0

'getType', là lỗi đánh máy tôi hy vọng. – gdoron

+0

Đối với phương thức typeOf là bất kỳ đối tượng nào được truyền, có thể được tạo ra. ví dụ. chuỗi, int, MyClass1, MyClass2 ... – bitwave

Trả lời

15

Nếu bạn gọi nó như thế này -

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

Nó sẽ trở lại System.String

Nhưng nếu bạn gọi như thế này -

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

Sau đó, nó sẽ trở lại System.RuntimeType

Ngoài ra, có nhỏ typo trong phương pháp của bạn -

Type type = obj.getType(); nên Type type = obj.GetType();

3

Tôi đoán bạn đã gọi nó như sau: getType(typeof(string)). typeof(abc) là giá trị của loại Type (hoặc RuntimeType là chi tiết triển khai).

Gọi nó như thế này:

getType("")

Các vấn đề liên quan