
我的应用程序有一个旧的dll。我必须在.NET反射器中创建新的指令,使用Reflilv1.7。问题是在哪里可以找到op_Inequality方法?我要写OpCode=call Operand=System.Boolean System.String::op_Inequality(system.string system.string)
发布于 2015-07-19 14:03:32
我不确定在反射器中应该如何工作,因为我没有安装.Net反射器。
您所看到的是String类上的不等式操作符,该操作符如下所示:
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_0038https://stackoverflow.com/questions/31443704
复制相似问题