c# - 从 ThreadStaticAttribute 派生子类的原因是什么?

标签 c# threadstatic

今天早上我正在刷新 C# 的 ThreadStaticAttribute 的内存,下面的行突然出现在我面前:

Use this attribute as it is, and do not derive from it.

此行存在于所有版本的 .Net Framework 和 Microsoft 自己的文档中 code analysis on the issue声明只有当属性被设计为属性层次结构的一部分时,才应将它们保留为未密封状态。

所以 - ThreadStaticAttributeis not now , 和 does not appear ever to have been , 密封。为什么?

最佳答案

有很多事情在 99% 的情况下都是一个坏主意,而在 1% 的情况下是一个好主意。

如果您不开发框架本身,但必须有人在框架中开发,那么还有更多的坏主意要做。

在这种情况下,更有可能是有人想要向框架添加 ThreadStaticAttribute 的特例,而不是你或我想要的。

即使那可能不太可能,但他们现在应该积极阻止它,还是保留这种可能性?

你可以争论任何一种方式,但有人决定保留这种可能性。 (或者不能排除“他们只是忘记了”)。

请注意,如果他们现在确实密封了它,那么如果有人确实成功地获得了派生属性,那将是一个重大变化。即使已经有人争论说他们不应该这样做,而且即使几乎所有的更改都有破坏某些东西的风险,但现在仍然有理由保持原样。

关于c# - 从 ThreadStaticAttribute 派生子类的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12180369/

相关文章:

C# - 接口(interface)说明

c# - 我又遇到了 protobuf.net 的问题

c# - 如何使用 CRM Dynamics 2013/2015 中的插件更新 CRM 中的实体和相关实体

c# - 使用 LINQ 通过单个查询获取外键表

带枚举的 C# 复选框列表

c# - 初始化 ThreadStatic 字段仍然导致 NullReferenceException

c# - [ThreadStatic] 的使用与异步代码不一致吗?

c# - .NET : ThreadStatic vs lock { }. 为什么 ThreadStaticAttribute 会降低性能?

c# - 处理线程静态变量