这篇 MSDN 文章处理数据类型。
它说:
对于 Java 中的每种原始数据类型,核心类库都提供了一个包装类,将其表示为 Java 对象。例如,Int32 类包装了 int 数据类型,而 Double 类包装了 double 数据类型。
另一方面,C# 中的所有原始数据类型都是 System 命名空间中的对象。对于每种数据类型,都提供了一个短名称或别名。例如,int 是 System.Int32 的简称,double 是 System.Double 的简称。
我跑到 Mono 代码阅读System.Int32 struct的实现。
我发现有几行迫使我问这个问题:
public const int MaxValue = 0x7fffffff;
public const int MinValue = -2147483648;
// This field is looked up by name in the runtime
internal int m_value;
我假设 MS 会以相同的方式实现该结构。这与包装器有什么不同吗?文档试图传达的究竟是什么?
如果要相信 MSDN,那么 System.Int32 结构至少对我来说将是无休止的递归和极大的困惑。