我现在正在使用 IL 代码,将来需要自己编写。由于误解,我有些担心。这是C#中的一个简单方法
public static string Method1(int id)
{
return Method2(id);
}
这是它的 IL 代码
.method public hidebysig static string
Method1(int32 id) cil managed
{
//
.maxstack 1
.locals init ([0] string CS$1$0000)
IL_0000: nop // Why?
IL_0001: ldarg.0
IL_0002: call string MyNamespace.MyClass::Method2(int32)
IL_0007: stloc.0 // storing a return value of MyClass::Method2 to local variable.
IL_0008: br.s IL_000a // Why?
IL_000a: ldloc.0 // Does it really require and why?
IL_000b: ret
} // end of method MyClass::Method1
CIL 中的每个方法都nop
因某种原因而起作用。为什么会有它?就我而言,是否有必要使用br.s IL_000a
它并且没有它会起作用吗?