每当我在c#中搜索拳击时,我都会遇到一个陈词滥调的例子:
string s = "something";
Object o = s;
这很容易理解,值类型在运行时被强制转换为非常通用的引用类型。好,好。我想谈谈更具体的拳击类型:
int i= something;
String s2 = 2
答案 0 :(得分:3)
string s= something;
String s2 = 2
这不是拳击。 String是一个引用类型,当涉及到C#时,当你说String时它就是一个类,它的别名是string。请参考Jon Skeet给出的超级问答: - What's the difference between String and string?
C#中也没有Integer而是int和System.int32这是一种类型,你没有对值类型进行装箱。
最后但并非最不重要 Java不是C#
答案 1 :(得分:1)
拳击正在将值类型转换为引用类型。它在值类型周围放置一个对象(引用类型)框
原始类型没有相应的引用类型,因此您对boxing primitive type to its corresponding reference type at run time
的问题无效。
int
是一个C#关键字,用作预定义.NET框架值类型System.Int32
http://msdn.microsoft.com/en-us/library/ya5y69ds.aspx
拳击的例子:
int i = 5;
object o = i; //box the primitive type int in an object.