type new convert cast c# dynamic c#-4.0 boxing

new - C#- Son los parámetros dinámicos encasillados



dynamic c# (3)

¡Sí!

Como es un tipo de valor, estará encuadrado.

Si tengo:

void Foo(dynamic X) { }

Y entonces:

Foo(12);

¿12 quedarían en caja? No me puedo imaginar que lo haría, solo me gustaría preguntar a los expertos.


Sí, lo hará.

Debajo del capó, un tipo dynamic es solo un object con algunos metadatos, por lo que los tipos de valor se colocarán en un recuadro cuando se coloquen en una variable, campo o parámetro de tipo dynamic .

El método realmente se compilará así:

void Foo([Dynamic] object X) { }

Lea más sobre DynamicAttribute aquí .

IL por código llamándolo:

.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 }


Sí. Un tipo de valor debe estar encuadrado para escribir check.