C#: Système.Objet vs Génériques

Je vais avoir du mal à comprendre quand utiliser l'Objet (boxing/unboxing) vs quand à l'utilisation des génériques.

Par exemple:

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]; }
 }

Qui dois-je utiliser et dans quelles conditions? Il semble qu'avec le Système.Objet manière, je peux avoir des objets de toutes sortes de types qui vivent actuellement dans ma Pile. Donc, ne serait-ce pas préférable? Merci!

  • Quel est le point d'ajouter un Chat à une collection de Canines? Ce type de flexibilité ne produit que des chats morts.
  • Voir cette question liée à une trop why-not-always-use-generics
InformationsquelleAutor foreyez | 2010-12-12