我想调用一个函数,作为参数a string
和a Int32
.这string
只是一个文字,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
}
Run Code Online (Sandbox Code Playgroud)
但这会引发错误,即这不是有效的代码.添加时
ldarg.0
Run Code Online (Sandbox Code Playgroud)
在ldfld
它运行之前就好了.为什么会这样,这会让我在拥有更多领域时遇到麻烦?
小智 39
实例方法有一个名为"this"的隐式参数.它作为堆栈的第一个参数加载,因此你有"this"的ldarg.0.
归档时间: |
|
查看次数: |
5363 次 |
最近记录: |