今天早上我在 C# 上刷新了我的记忆ThreadStaticAttribute
,下面这行突然出现在我身上:
照原样使用此属性,不要从它派生。
此行存在于所有版本的 .Net Framework 的文档中,并且 Microsoft 自己对该问题的代码分析指出,只有当属性被设计为属性层次结构的一部分时,它们才应保持未密封状态。
今天早上我在 C# 上刷新了我的记忆ThreadStaticAttribute
,下面这行突然出现在我身上:
照原样使用此属性,不要从它派生。
此行存在于所有版本的 .Net Framework 的文档中,并且 Microsoft 自己对该问题的代码分析指出,只有当属性被设计为属性层次结构的一部分时,它们才应保持未密封状态。
有很多事情在 99% 的情况下都是坏主意,而在 1% 的情况下是个好主意。
如果您不开发框架本身,那么还有更多的事情是一个坏主意,但必须有人在框架中。
ThreadStaticAttribute
在这种情况下,与您或我想要的相比,有人可能想要向框架添加一个特殊情况。
即使这样可能也不太可能,但他们现在应该积极阻止它,还是让可能性保持开放?
你可以争论任何一种方式,但有人决定保留这种可能性。(或者不能排除“他们只是忘记了”)。
请注意,如果他们现在确实将其密封,那么如果有人确实在派生属性方面取得了成功,那将是一个重大变化。即使已经有人争辩说他们不应该这样做,即使几乎所有的更改都有破坏某些东西的风险,但保持现状仍然是一个论据。