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

今天早上我在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 nowdoes not appear ever to have been已经密封.为什么?

最佳答案 99%的情况下做很多事情是个坏主意,1%的好主意.

如果你不是在开发框架本身,那么有更多的事情是不好的事情,但有人必须在框架中.

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

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

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

请注意,如果他们现在确实密封了它,那么如果有人在派生属性上取得了成功,那将是一个重大变化.即使已经有人认为他们不应该这样做,即使几乎所有的变化都有一些破坏某些东西的风险,但现在仍然存在这样的争论.

点赞