Мне сложно понять, когда использовать Object (boxing/unboxing) против использования дженериков.
Например:
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 у меня могут быть объекты всех типов, которые в настоящее время живут в моем стеке. Так разве это не всегда предпочтительнее? Спасибо!