C#: System.Object vs Generics

9 浏览
0 Comments

C#: System.Object vs Generics

我很难理解何时应该使用对象(装箱/拆箱)而何时应该使用泛型。

例如:

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
{ 
  int position; 
  T[] data = new T[100]; 
  public void Push(T obj)  {data[position++] = obj; }
  public T Pop() { return data[--position]; }
 }

在什么条件下我应该使用哪个?使用System.Object的方式似乎可以在我的Stack中存放各种类型的对象。那么这种方式是否一直更可取?谢谢!

0