j = i >= 20 ? "hi" : "bye" 編譯為:條件判斷 bge.s 跳至真分支載入 "hi",假則繼續載入 "bye",最後統一存儲並輸出。IL 中無法區分原始碼使用 if-else 還是 ?:。
& 不短路,兩側皆評估。IL 使用 clt、ceq 產生兩個 0/1 結果,再以 and 指令做位元與,最後 brfalse.s 決定是否執行區塊。
// C# 代碼
if (i >= 4 & j > 1) Console.WriteLine("& true");
IL 關鍵序列:clt ceq (i>=4) → cgt (j>1) → and → brfalse.s。
三元操作符與 if-else 編譯結果相同;&/| 為位元邏輯,無短路,編譯為完整評估後 and/or 指令。