C# - 动态参数是否装箱

时间:2011-02-10 14:47:08

标签: c# dynamic c#-4.0 boxing

如果我有:

void Foo(dynamic X) {
}

然后:

Foo(12);

12会被装箱吗?我无法想象,我只想问专家。

3 个答案:

答案 0 :(得分:14)

是的,它会。

简而言之,dynamic类型只是一个带有一些元数据的object,因此当将值类型放入{{1}类型的变量,字段或参数时,它将被装箱}}

该方法实际上将编译为:

dynamic

详细了解DynamicAttribute here

IL代码调用它:

void Foo([Dynamic] object X)
{
}

答案 1 :(得分:1)

是。需要装箱值类型才能键入支票。

答案 2 :(得分:0)

是的!

由于它是一个值类型,它将被装箱。