这叫装箱拆箱(inboxing and outboxing),和java不同,java的int有外覆类Integer 而C#,是自动装箱拆箱的。也就是当你调用a.ToString()的时候,CLR会自动将a放入一个引用对象(类似Java的Integer),这就叫装箱。 而当你从装箱的对象中取出整数,它又会拆箱。比如 ArrayList1.Add(a); //a会被放入“箱”,再存入列表。 int x = ArrayList1[0]; //此时又会拆箱,并且结果送到x上。 装箱拆箱的目的是在不增加程序本身复杂度的情况下,对系统性能的优化。 Java的外覆类,使得程序员要为值类型编写额外的代码。
msdn上解释是将此实例的数值转换为其等效的字符串表示形式。
[quote=引用 1 楼 caozhy 的回复:] 这叫装箱拆箱(inboxing and outboxing),和java不同,java的int有外覆类Integer 而C#,是自动装箱拆箱的。也就是当你调用a.ToString()的时候,CLR会自动将a放入一个引用对象(类似Java的Integer),这就叫装箱。 而当你从装箱的对象中取出整数,它又会拆箱。比如 ArrayList1.Add(a); //a会被放入“箱”,再存入列表。 int x = ArrayList1[0]; //此时又会拆箱,并且结果送到x上。 装箱拆箱的目的是在不增加程序本身复杂度的情况下,对系统性能的优化。 Java的外覆类,使得程序员要为值类型编写额外的代码。
110,533
社区成员
642,574
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧