我一直试图了解 Java 和 C# 中“原语”的使用以及它们之间的区别(如果有的话)。我已经就 SO 提出了一系列问题,其中一些答案似乎混淆了这个问题,而不是澄清它。一些答案(和一些 MS 文档)似乎提供了相互矛盾的陈述。从 SO
并来自 MS: http: //msdn.microsoft.com/en-us/library/ms228360%28VS.80,lightweight%29.aspx
- “结构与类非常相似” - “Int32
类包装int
数据类型” - “另一方面,C# 中的所有原始数据类型都是 System 命名空间中的对象。对于每种数据类型,都提供了一个短名称或别名。例如,int
是 System.Int32 的短名称”。
我的困惑主要在于 C#(我已经编写了一段时间的 java 程序)。
编辑@Jon Skeet 已确认以下段落是正确的
- Java 有两种类型(原始类型和类)。“值类型”这个词可能是原始(尽管没有广泛使用)的同义词,也是类的“引用类型”的同义词。Java 在类 (Integer) 中“包装”原语 (int),这些类具有任何其他类的完整功能(可以为 null,用于集合等)
编辑@Jon 对 C# 给出了非常明确的声明,所以我将删除我建议的事实并参考他的回答。
进一步的问题:对于这些术语的实际使用应该是什么达成共识?如果有共识,我将非常感谢明确说明。否则,我认为术语是混乱的,因此用途有限。
总结感谢您提供非常明确的答案。真正理解这一点的人达成了共识(参见@Jon 接受的答案),MS 文档是一致的(尽管他们在某些地方提到了 Java,而我误读了这些 C#)