Tôi đang có một thời gian khó hiểu khi sử dụng Object (boxing/unboxing) vs khi sử dụng Generics.C#: System.Object vs Generics
Ví dụ:
public class Stack
{
int position;
object[] data = new object[10];
public void Push (object o) { data[position++] = o; }
public object Pop() { return data[--position]; }
}
VS.
public class Stack<T>
{
int position;
T[] data = new T[100];
public void Push(T obj) {data[position++] = obj; }
public T Pop() { return data[--position]; }
}
Tôi nên sử dụng điều kiện nào và trong điều kiện nào? Nó có vẻ như với cách System.Object tôi có thể có các đối tượng của tất cả các loại hiện đang sống trong ngăn xếp của tôi. Vì vậy, điều này sẽ không luôn luôn thích hợp hơn? Cảm ơn!
Điểm của việc thêm Mèo vào bộ sưu tập Chó là gì? Loại linh hoạt này chỉ tạo ra những con mèo chết. –
Xem câu hỏi liên quan này quá [tại sao-không-luôn-sử dụng-generics] (http://stackoverflow.com/questions/4040746/why-not-always-use-generics) – nawfal