gpt4 book ai didi

C# - 动态参数是否装箱

转载 作者:IT王子 更新时间:2023-10-29 04:39:24 24 4
gpt4 key购买 nike

如果我有:

void Foo(dynamic X) {
}

然后:

Foo(12);

12 会被装箱吗?想不通,想请教专家。

最佳答案

是的,会的。

在幕后,dynamic 类型只是一个带有一些元数据的对象,因此当将值类型放入变量、字段或dynamic 类型的参数。

该方法实际上将被编译为:

void Foo([Dynamic] object X)
{
}

阅读更多关于 DynamicAttribute here 的信息.

调用它的代码的 IL:

.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
.maxstack 8
L_0000: nop
L_0001: ldc.i4.s 12
L_0003: box int32
L_0008: call void ConsoleApplication13.Program::Foo(object)
L_000d: nop
L_000e: ret
}

关于C# - 动态参数是否装箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4958515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com