今天早上我正在刷新 C# 的 ThreadStaticAttribute
的内存,下面的行突然出现在我面前:
Use this attribute as it is, and do not derive from it.
此行存在于所有版本的 .Net Framework 和 Microsoft 自己的文档中 code analysis on the issue声明只有当属性被设计为属性层次结构的一部分时,才应将它们保留为未密封状态。
所以 - ThreadStaticAttribute
类 is not now , 和 does not appear ever to have been , 密封
。为什么?
最佳答案
有很多事情在 99% 的情况下都是一个坏主意,而在 1% 的情况下是一个好主意。
如果您不开发框架本身,但必须有人在框架中开发,那么还有更多的坏主意要做。
在这种情况下,更有可能是有人想要向框架添加 ThreadStaticAttribute
的特例,而不是你或我想要的。
即使那可能不太可能,但他们现在应该积极阻止它,还是保留这种可能性?
你可以争论任何一种方式,但有人决定保留这种可能性。 (或者不能排除“他们只是忘记了”)。
请注意,如果他们现在确实密封了它,那么如果有人确实成功地获得了派生属性,那将是一个重大变化。即使已经有人争论说他们不应该这样做,而且即使几乎所有的更改都有破坏某些东西的风险,但现在仍然有理由保持原样。
关于c# - 从 ThreadStaticAttribute 派生子类的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12180369/