今天早上,我在C#的ThreadStaticAttribute
上回忆起我的记忆,下面的一句话突然出现在我面前:
按原样使用此属性,不要从中派生。
这一行存在于.Net Framework的所有版本的文档中,而Microsoft自己的code analysis on the issue表明,如果属性被设计为属性层次结构的一部分,那么这些属性只能保持未密封。
所以 - ThreadStaticAttribute
班级is not now和does not appear ever to have been,sealed
。为什么呢?
答案 0 :(得分:2)
有很多事情在99%的情况下都是不好的想法,而且1%的好主意。
如果你不是在开发框架本身,还有更多的事情是不好的事情,但有人必须在框架中。
在这种情况下,有人可能希望在框架中添加ThreadStaticAttribute
的特殊情况,而不是您或我想要的情况。
即使这可能不是那么可能,但是他们现在应该积极地阻止它,还是让这种可能性开放?
你可以争论任何一种方式,但有人决定继续这种可能性。 (或者不是“他们只是忘了”不能排除)。
请注意,如果他们现在确实密封了它,那么如果有人确实在派生属性上取得了成功,那将是一个重大改变。即使已经有人认为他们不应该这样做,即使几乎所有的变化都有一些破坏某些东西的风险,但现在仍然存在这样的争论。