如果我使用的是非泛型集合、函数等等,那么传递的值类型将因为转换为Object而被装箱(这对性能不利)。但是,在C# 2.0中包含泛型之后,大多数将值类型作为Object传递的情况被排除了。
在胜任的编程中,是否还存在这样的情况:不可能使用泛型完成某些任务,仍然需要对Object进行转换?如果是的话,你能举个例子吗?谢谢。
发布于 2011-04-02 08:27:12
System.Object的使用提供了灵活性(代价是性能)。
考虑到ASP.NET (会话和应用)的存储机制,它们具有
Dictionary<string, object> PropertyBag;你会用它们就像
PropertyBag["currentCustomer"] = aCustmer;
PropertyBag["visits"] = 0;不可能用这里输入的更强的东西来代替object。
发布于 2011-04-02 08:05:18
在有能力的编程中仍然存在这样的情况:不可能用泛型完成某件事情,仍然需要使用转换来实现对象
当然有。例如,在编译时不知道类型并需要使用反射的情况。但是如果您知道编译时的类型,最好使用泛型进行强类型。
https://stackoverflow.com/questions/5521987
复制相似问题