Generics do trump object in many cases, but only where the type is known .
There are still moments when you do not know the type - object , or some other appropriate base type - this is the answer in these cases.
For example:
object o = Activator.CreateInstance("Some type in an unreferenced assembly");
You will not be able to use this result or even know that the type is at compile time, so object is a valid use.
Your colleague generalizes too much - perhaps point him to this question. Generics are great, give it as much, but they do not "replace" the object .
Adam houldsworth
source share