c# - 为什么.NET 的 Version 是类而不是结构?

标签 c# .net struct

<分区>

根据 ReferenceSource , Version类是 sealed , ICloneable , IComparable , IComparable<Version> , IEquatable<Version> .它也只存储 int值。 .NET 程序员选择将其设为类而不是结构有什么特别的原因吗?为什么有人需要 null版本?

这是来自 ReferenceSource 的字段声明 block :

// AssemblyName depends on the order staying the same
private int _Major;
private int _Minor;
private int _Build = -1;
private int _Revision = -1;

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

最佳答案

Why would someone need a null version?

要指定不指定版本,例如AssemblyName如您问题的评论中所述。一个AssemblyName传递给 Assembly.Load 时可能会省略版本,例如,在这种情况下它是 Version属性(property)将是null .请记住,这些类型是为没有泛型的 .NET 1.0 创建的,所以 Nullable<Version>作为替代品还不存在。

关于c# - 为什么.NET 的 Version 是类而不是结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697099/

相关文章:

c# - 我们如何通过c#获取本地SQL Server实例

c# - 使用分离实体在 Entity Framework 5 中使用代码优先进行更新

c# - 遍历对象的层次结构 - C# - linq

c# - dotnet run --project <PATH> 不将项目路径作为工作目录

c - 为什么我会收到有关链表内字符数组的错误?

performance - 如何在 Go 中通过清晰的结构值优化性能?

c# - 获取访问您网站的每个用户的 IP 地址和位置

c# - native dll 的 .net 包装器 - 如何将运行时错误的风险降至最低?

c# - 在 C# 中播放声音 - 使用所有方法中的哪一种?

c++ - 结构与 vector 作为数据持有者