2010-03-28 28 views
24

Phương pháp của tôi trông giống như:làm thế nào để tôi có được tên lớp khi tôi đang đi chung trong phương pháp của tôi?

public string DoObjectProperties<T>(T obj, string text) 
{ 

} 

Bây giờ từ bên trong phương pháp này, tôi cần để có được chuỗi giá trị của tên lớp mà tôi vượt qua vào tham số 'obj' của phương pháp.

Vì vậy, nếu tôi chuyển đối tượng Người dùng, tôi cần văn bản 'người dùng'.

Để có được các thuộc tính tôi đang sử dụng: typeof(T).GetProperties()

Làm thế nào tôi có thể lấy tên lớp học?

Trả lời

47

Chỉ cần sử dụng .Name như thế này:

typeof(T).Name 

Điều này cho phép ví dụ như "String", cũng có .FullName mà sẽ cung cấp cho "System.String"

1
typeof(T).Name //would work 

Nhưng tùy thuộc vào nó và đưa ra quyết định dựa trên nó có lẽ không phải là một ý kiến ​​hay.

Quy tắc quan trọng ở đây là bạn có thể nên sử dụng FullName bất cứ khi nào có thể.

Ví dụ trong báo cáo trường hợp chuyển đổi hoặc trong trường hợp khác chặn hoặc trong khóa từ điển.

Tên lớp không phải là điều lý tưởng để phụ thuộc vào vì bạn có khả năng có cùng tên lớp trong các không gian tên khác nhau. NamespaceA.String và NamespaceB.String là hoàn toàn có thể ...

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