为什么.NET的版本是一个类而不是结构?

Phi*_*aré 4 .net c# struct

ReferenceSource,该Version班是sealed,ICloneable,IComparable,IComparable<Version>,IEquatable<Version>.它也只存储int价值.是不是有一个特殊原因让.NET程序员选择将它变成一个类而不是结构?为什么有人需要null版本?

这是ReferenceSource的字段声明块:

// AssemblyName depends on the order staying the same
private int _Major;
private int _Minor;
private int _Build = -1;
private int _Revision = -1;
Run Code Online (Sandbox Code Playgroud)

他们甚至发表评论,说他们需要保持字段一致.也许这只是我,但这真的是一个结构的东西?

小智 5

为什么有人需要null版本?

指定未指定版本,例如,AssemblyName在问题的注释中引用.一个AssemblyName传递到时可以省略的版本Assembly.Load,例如,在这种情况下,它的Version性能会null.请记住,这些类型是为.NET 1.0创建的,它没有泛型,因此Nullable<Version>作为替代方法尚不存在.