我目前面临运营商的新问题。使用以下代码,我想制作与if ... else
在 C# 中使用 pair 时相同的输出。
var method = new DynamicMethod("dummy", null, Type.EmptyTypes);
var g = method.GetILGenerator();
g.Emit(OpCodes.Ldstr, "string");
g.Emit(OpCodes.Ldstr, "string");
g.Emit(OpCodes.Call, typeof(String).GetMethod("op_Equality", new Type[]{typeof(string), typeof(string)}));
g.Emit(OpCodes.Ldc_I4, 0);
g.Emit(OpCodes.Ceq);
g.Emit(OpCodes.Brtrue_S, );
var action = (Action)method.CreateDelegate(typeof(Action));
action();
Console.Read();
我的问题是:
- 如何获取指令的地址以将其作为分支操作码的参数传递?
BR
和BR_S
、Brtrue
和Brtrue_S
、Brfalse
和Brfalse_S
类似的指令之间有什么区别吗?
谢谢。