最佳答案
我偶然发现 C # 编译器转动这个方法:
static bool IsNotNull(object obj)
{
return obj != null;
}
... 进入这个 CIL:
.method private hidebysig static bool IsNotNull(object obj) cil managed
{
ldarg.0 // obj
ldnull
cgt.un
ret
}
... 或者,如果你更喜欢查看反编译的 C # 代码:
static bool IsNotNull(object obj)
{
return obj > null; // (note: this is not a valid C# expression)
}
为什么 !=
被翻译成“ >
”?