我很难理解何时使用对象(装箱/拆箱)而何时使用泛型。
例如:
public class Stack
{
int position;
object[] data = new object[10];
public void Push (object o) { data[position++] = o; }
public object Pop() { return data[--position]; }
}
对比。
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的方法可以让我在栈内存储各种类型的对象。那么这种方式不是总是更好吗?谢谢!