react inputs example ejemplos bootstrap field cil

field - inputs - react tags



¿Por qué tengo que hacer ldarg.0 antes de llamar a un campo en MSIL? (1)

Quiero llamar a una función, con como parámetros una string y un Int32 . La string es solo un literal, el Int32 debería ser un field . Así que pensé que debería ser algo como:

.method public hidebysig instance string TestVoid() cil managed { .maxstack 1 .locals init ( [0] string CS$1$0000) L_0000: nop L_0001: ldstr "myString" L_0006: ldfld int32 FirstNamespace.FirstClass::ByteField L_000b: call string [Class1]Class1.TestClass::Functie<int32>(string, int32) L_0010: ret }

Pero esto arroja el error de que este no es un código válido. Al agregar

ldarg.0

Antes de ldfld funciona bien. ¿Por qué es esto, y esto me va a meter en problemas al tener más campos?


Los métodos de instancia tienen un parámetro implícito llamado "esto". Se carga como el primer argumento de la pila, por lo tanto, tiene ldarg.0 para "esto".