==运算符与基元类型
我们分别用两种方式比较两个整数,第一个使用的是Equals(int)
方法,每二个使用的是==运算符:
1 class Program 2 { 3 static void Main(String[] args) 4 { 5 int num1 = 5; 6 int num2 = 5; 7 8 Console.WriteLine(num1.Equals(num2)); 9 Console.WriteLine(num1 == num2);10 }11 }
运行上面的示例,两个语句出的结果均为true
。我们通过ildasm.exe工具进行反编译,查看IL代码,了解底层是如何执行的。
如果您以前从来没有接触过IL指令,不过没关系,在这里您不需要理解所有的指令,我们只是想了解这两个比较方式的差异。
您可以看到这样一行代码:
1 IL_0008: call instance bool [mscorlib]System.Int32::Equals(int32)
在这里调用的是
网友评论