为什么CLR中有些类被封存了?

Why are some classes in the CLR sealed?

我最近一直在使用 System.Version class 并且想知道为什么它和其他一些足够简单的 class 被标记为 SealedNotInheritable 在 VB).

与一些更复杂的 classes 不同,我看不出这样的 class 被封印会得到什么。

据我所知 source 对于 Version 并不意味着任何原因。

这有 published/official(即不基于意见)的原因吗?是否有一些问题可能是由它派生出来的?专门针对 Version 的情况,或者对于同样简单的 classes.

失败

背景:我不得不重新创建 Version class 以便更容易地使用双向绑定,因为 MS 版本有 ReadOnly特性。但是我需要知道推导是否会引起一些问题

Version 是一个 class 代表一个“值”,类似于 DateTime,但太大而不适合 struct,它是 class.但是,适用相同的设计原则。表示值的类型应该是不可变的和密封的(值类型总是密封的)。

您还可以清楚地看到价值观的其他特征:

  • object.Equalsobject.GetHashCode 已被覆盖。
  • 它实现了IEquatable<Version>