==運算符與基元類型

  我們分別用兩種方式比較兩個整數(shù),第一個使用的是Equals(int)方法,每二個使用的是==運算符:  

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動開發(fā)培訓(xùn)

 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培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動開發(fā)培訓(xùn)

  運行上面的示例,兩個語句出的結(jié)果均為true。我們通過ildasm.exe工具進行反編譯,查看IL代碼,了解底層是如何執(zhí)行的。

  iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動開發(fā)培訓(xùn)

  如果您以前從來沒有接觸過IL指令,不過沒關(guān)系,在這里您不需要理解所有的指令,我們只是想了解這兩個比較方式的差異。

  您可以看到這樣一行代碼:

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

  在這里調(diào)用的是

網(wǎng)友評論