最近我意识到BCL中有一些部分仍然使用一些“遗留”代码,这些代码可能是在框架的v2.0中引入泛型之前编写的。 显然,部分“遗留”代码可能会导致CLR执行大量的装箱/拆箱操作。
由于过度使用拳击从来都不是一件好事,我想知道BCL中是否有其他一些关键的地方你注意到拳击发生了? 感谢
答案 0 :(得分:3)
请注意,对于上面提到的具体示例:
因此,如果您的分析表明它是一个问题,您应该只担心这个内部 由于MS从不打算修复它,因此对于任何客户而言,这似乎不太可能出现问题。
隐藏分配静脉中你更关心的是:
IList<T>
rather than List<T>
但同样,所有这些(除了字典中的关键字,需要付出相当大的努力才能解决)只应该用来处理
答案 1 :(得分:2)
首先,你是对的 - 这不好。但是埋藏点网框架对你没有任何好处 - 你应该接受框架内部,并希望将来进行优化(例如,TransactionScope
已经从2.0优化到3.5 SP1)。
希望清理它。
答案 2 :(得分:0)
知识赋予你力量。
我最近发现了如何实现“path”+'\'+“fileName”。
中间字符'\'首先装入一个对象,然后调用Concat(对象,对象,对象),然后调用ToString三次,最后调用Concat(字符串,字符串,字符串)。 / p>
如果程序员知道,他/她本可以写: “path”+“\”+“filename”