【发布时间】:2010-12-12 21:09:07
【问题描述】:
我很难理解何时使用 Object(装箱/拆箱)与何时使用泛型。
例如:
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]; }
}
我应该在什么条件下使用哪一个?似乎使用 System.Object 方式,我可以拥有当前存在于我的堆栈中的各种类型的对象。那么这不是总是更可取吗?谢谢!
【问题讨论】:
-
在 Canines 集合中添加猫有什么意义?这种灵活性只会产生死猫。
-
也看到这个相关问题why-not-always-use-generics