==运算符与基元类型

  我们分别用两种方式比较两个整数,第一个使用的是Equals(int)方法,每二个使用的是==运算符:  

iOS培训,Swift培训,苹果开发培训,移动开发培训

 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 }

iOS培训,Swift培训,苹果开发培训,移动开发培训

  运行上面的示例,两个语句出的结果均为true。我们通过ildasm.exe工具进行反编译,查看IL代码,了解底层是如何执行的。

  iOS培训,Swift培训,苹果开发培训,移动开发培训

  如果您以前从来没有接触过IL指令,不过没关系,在这里您不需要理解所有的指令,我们只是想了解这两个比较方式的差异。

  您可以看到这样一行代码:

1   IL_0008:  call       instance bool [mscorlib]System.Int32::Equals(int32)

  在这里调用的是

网友评论