Tôi có một lớp bậc trên, chúng tôi có thể gọi class A
và một vài lớp con, ví dụ: class a1 : A
, class a2 : A
, ... và a6 : A
. Trong số class B
của tôi, tôi có một bộ phương pháp tạo và thêm một trong các lớp con vào một số List<A>
trong B
.C# tạo Object obj = new T()?
Tôi muốn rút ngắn mã của mình hiện tại. Vì vậy, thay vì viết
Adda1()
{
aList.Add(new a1());
}
Adda2()
{
aList.Add(new a2());
}
...
Adda6()
{
aList.Add(new a6());
}
Thay vào đó tôi muốn viết một cái gì đó tương tự như sau
Add<T>()
{
aList.Add(new T()); // This gives an error saying there is no class T.
}
Là có thể?
Bạn cũng có thể hạn chế rằng T
phải thuộc loại A
hoặc một trong các lớp con của nó?
thể trùng lặp của [Tạo thể hiện của loại chung chung?] (Http://stackoverflow.com/questions/731452/create-instance- of-generic-type) –