程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 《C# to IL》第四章 關鍵字和操作符(下)(14)

《C# to IL》第四章 關鍵字和操作符(下)(14)

編輯:關於C語言

像&&這樣的操作符 被稱為短路運算符,因為它們只有當第一個條件為True時才會執行第2個條件。我們重復了和先前一樣的 IL代碼,但是現在條件是使用blt.s指令進行檢查的,它是clt和brtrue指令的組合。

如果條件為 FALSE,就會跳轉到標號IL_0016處的ret指令。只有當條件為TRUE時,我們就可以向下進行並檢查第2個條 件。為此,我們使用ble.s指令,它是cgt和brfalse的組合。如果第2個條件為FALSE,我們就像前面一樣 跳轉到ret指令,如果為TRUE,我們就執行WriteLine函數。

&&操作符執行比&快,因 為它只能當第一個條件為TRUE時才會進行到下一步。這樣做,第一個表達式的輸出就會影響到最後的輸出 。

|和||操作符也以類似的方式來表現。

a.cs

class zzz
{
public static void Main()
{
bool x,y;
x = true;
y = false;
System.Console.WriteLine( x ^ y);
x = false;
System.Console.WriteLine( x ^ y);
}
}

a.il

.assembly mukhi {}
.class private auto ansi zzz extends [mscorlib]System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
.locals (bool V_0,bool V_1)
ldc.i4.1
stloc.0
ldc.i4.0
stloc.1
ldloc.0
ldloc.1
xor
call        void [mscorlib]System.Console::WriteLine(bool)
ldc.i4.0
stloc.0
ldloc.0
ldloc.1
xor
call       void [mscorlib]System.Console::WriteLine(bool)
ret
}
}

Output

True

False

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved