我想调用一个函数,作为参数 astring
和 an Int32
。thestring
只是文字,Int32
应该是field
. 所以我认为它应该是这样的:
.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
}
但这会引发错误,即这不是有效的代码。添加时
ldarg.0
在ldfld
它运行正常之前。为什么会这样,当拥有更多字段时,这会给我带来麻烦吗?