phép nói rằng tôi có các lớp sauGọi một phương pháp chung với một loại động
public class Animal { .... }
public class Duck : Animal { ... }
public class Cow : Animal { ... }
public class Creator
{
public List<T> CreateAnimals<T>(int numAnimals)
{
Type type = typeof(T);
List<T> returnList = new List<T>();
//Use reflection to populate list and return
}
}
Bây giờ trong một số mã sau, tôi muốn đọc những gì động vật để tạo ra.
Creator creator = new Creator();
string animalType = //read from a file what animal (duck, cow) to create
Type type = Type.GetType(animalType);
List<animalType> animals = creator.CreateAnimals<type>(5);
Bây giờ vấn đề là dòng cuối cùng không hợp lệ. Có một số cách thanh lịch để làm điều này sau đó?
Generics không thực sự là cách để đến đây, bạn chỉ cần tạo Danh sách thay vào đó và sử dụng Activator để tạo các lớp dẫn xuất. –
Doggett