可能是重复问题:
结构、接口和装箱
来自 MSDN:http://msdn.microsoft.com/en-us/library/yz2be5wk.aspx
装箱是将值类型转换为类型 object 或实现该值类型的任何接口类型的过程。
但泛型接口呢?
例如,int 类型既从 IComparable 派生,也从 IComparable<int> 派生。
假设我有以下代码:
void foo(IComparable value) { /* etc. */ }
void bar(IComparable<T> value) { /* etc. */ }
void gizmo()
{
int i = 42;
bar(i); // is `i` boxed? I'd say YES
foo(i); // is `i` boxed? I fear it is (but I hope for NO)
}
调用 bar
函数(或任何接收非泛型接口的函数),是否意味着会发生装箱?
调用 foo
函数(或任何接收泛型接口的函数),是否意味着会发生装箱?
谢谢。