我刚开始使用C#.我注意到所有的值类型都包含在各自的structs中.我确实查找了它背后的原因,虽然找不到多少(也许我没有正常搜索).我只是想问一下 - struct在C#中将值类型包装为s而不是Java中的包装类是什么原因?
编辑:
当我徘徊时int,我猜它会告诉我这个:http://msdn.microsoft.com/en-us/library/system.int32%28v=vs.71%29.从评论中我知道我可能在这里理解错误.如果int没有包装struct,那为什么会显示相关信息呢?
我相信这对IDE告诉你的内容有点困惑.首先,与Java 不同,int和之间完全没有区别Int32.它不是同一件事的"原始"和"盒装"版本; 简单来说,int就是方便的c#名称; 全名(因为CLI支持其他语言等)global::System.Int32; 但这只是一个别名; 它们是相同的,可互换的.
其次,struct是"价值型"的同义词; 再次,相同的意义(大多数).
这里没有包装; 当IDE谈到"struct Int32"时,它也在谈论"原始int".他们是一样的.重点是:int被视为一个值而不是一个引用,这意味着它是一个"结构"; 这是所有正在试图告诉你,即"不是一个参考".