什么应该在C#2.0和更新的时候使用`Object`?泛型是否会替换所有出现的对象?

goo*_*ate 7 .net c# generics .net-2.0

我的同事声称Object在.NET 2.0及更新版本中声明变量,返回参数等时从不需要使用.

他进一步说,在所有这些情况下,应该使用Generic作为替代方案.

这种说法是否有效?我Object用来锁定并发线程...

Ada*_*rth 8

泛型object在许多情况下确实胜过,但只有在知道类型的地方.

有些时候你还不知道类型 - object或者其他一些相关的基类型就是这些情况下的答案.

例如:

object o = Activator.CreateInstance("Some type in an unreferenced assembly");
Run Code Online (Sandbox Code Playgroud)

您将无法转换该结果,甚至可能无法在编译时知道该类型是什么,因此object是有效的用法.

你的同事过于泛化 - 或许指出他在这个问题上.仿制药很棒,给他那么多,但他们不会"替换" object.