Vâng, đó là vì tên của loại trong .NET thực sự IS List'1. "1" là cái gọi là arity của generic, và nó cho bạn biết có bao nhiêu tham số kiểu có.
Cần thiết để bạn có thể tạo thêm 1 loại chung chung với cùng một "tên" nhưng một số thông số loại chung khác.
Ví dụ: có hơn 1 loại "được gọi là" System.Action. Tên thật của chúng là System.Action'1, System.Action'2, System.Action'3, v.v.
Vì vậy, nếu bạn biết rằng loại của bạn là chung chung, bạn có thể giả định rằng có 'XX tại cuối tên, vì vậy bạn chỉ có thể cắt phần này đi, ví dụ như thế này:
string strTypeName = typeof(List<>).Name.Substring(0, typeof(List<>).Name.LastIndexOf("`"));
PS: Vui lòng thay thế 'bằng'.
Nguồn
2009-10-07 17:53:50
Nên được tăng cường một chút. Đối số chung nên được định dạng theo cùng một cách, nó có thể là một kiểu generic một lần nữa. Tất nhiên nó phải hỗ trợ nhiều đối số chung chung. –
Tôi đang trong quá trình nhập một phiên bản phức tạp hơn xử lý và bội số mà tôi vừa mới đăng. – Erich
Đã chỉnh sửa lại để sử dụng tổng hợp. Kiểm tra lịch sử chỉnh sửa nếu bạn muốn phiên bản 'cũ'. Chức năng giống hệt nhau, nhưng tôi muốn tìm hiểu cách thức tổng hợp hoạt động, và đây là cách tốt để tìm hiểu :) – Erich