我有一个旧的dll应用程序。我必须使用Reflexil v1.7在.NET REFLECTOR中创建新指令。 问题是我在哪里可以找到op_Inequality方法? 我得写 操作码=通话 操作数= System.Boolean System.String :: op_Inequality(system.string system.string)
答案 0 :(得分:0)
我不确定它在reflexil中应该如何工作,因为我没有安装.Net Reflector。
你正在看的是String类的op_inequality运算符,它看起来像这样:
public static bool operator !=(string a, string b)
{
return !string.Equals(a, b);
}
在c#中,等价物是
bool result = (a != b)
从反编译而不是op_Inequality可以看出,我希望您可以将虚拟调用放入Equals
然后取消分支。
IL_0024: ldloc.0 // s
IL_0025: ldloc.1 // v
IL_0026: callvirt System.String.Equals
IL_002D: brtrue.s IL_0038