c#中(&&,||)與(&,|)的區(qū)別詳解
對于(&&,||),運(yùn)算的對象是邏輯值,也就是True/False
&&相當(dāng)與中文的并且,||相當(dāng)于中文的或者 。(叫做邏輯運(yùn)算符又叫短路運(yùn)算符)
運(yùn)算結(jié)果只有下列四種情況。
True && True = True (左邊為true,再驗證右邊也為true,返回結(jié)果true)假如這是一個查詢條件,則執(zhí)行。
True && False = False (左邊為true,再驗證右邊為false,返回結(jié)果false)假如這是一個查詢條件,不執(zhí)行。
False && True = False (左邊為false,發(fā)生短路現(xiàn)象。右邊不再執(zhí)行,直接返回false).........同樣不執(zhí)行。
False && False = False (同上)
True || True = True (左邊為true,發(fā)生短路現(xiàn)象,右邊不執(zhí)行,直接返回true).......執(zhí)行
True || False = True (左邊為true,發(fā)生短路現(xiàn)象,右邊不執(zhí)行,直接返回true).......執(zhí)行
False || True = True (左邊為false,再驗證右邊為true,返回結(jié)果true)............執(zhí)行
False || False = False (左邊為false,再驗證右邊也為false,返回結(jié)果false).......不執(zhí)行
對于(&,|),運(yùn)算的對象是位,也就是1/0,叫做位運(yùn)算符
理解:0為false,1為true(通用:0表示假,所有非零的數(shù)表示真。 ######方便記憶:0,什么都沒有騙人的,則為假)
運(yùn)算結(jié)果只有下列四種情況。
1 & 1 = 1 1 & 0 = 0 0 & 1 = 0 0 & 0 = 0 1 | 1 = 1 1 | 0 = 1 0 | 1 = 1 0 | 0 = 0
&&和&對于他們各自的運(yùn)算對象來說,結(jié)果是一樣的。
下面用一段代碼來說明||在實際代碼中的運(yùn)用
var data = svc.DeclarationHeads.Include("TaxType").Where(f => f.CorporationCode == param.CorporationCode && f.FlowSign == 2 && (!param.TaxTypeId.HasValue || f.TaxTypeId == param.TaxTypeId)).ToList();
當(dāng)傳入的參數(shù)中TaxTypeId==null時,param.TaxTypeId.HasValue為true,發(fā)生短路現(xiàn)象,右邊不執(zhí)行,返回結(jié)果true。
則實際執(zhí)行代碼:var data = svc.DeclarationHeads.Include("TaxType").Where(f => f.CorporationCode == param.CorporationCode && f.FlowSign == 2 ).ToList();
當(dāng)傳入的參數(shù)中TaxTypeId==123時,param.TaxTypeId.HasValue為false,執(zhí)行右邊的代碼,即f.TaxTypeId == 123,
則實際執(zhí)行代碼:var data = svc.DeclarationHeads.Include("TaxType").Where(f => f.CorporationCode == param.CorporationCode && f.FlowSign == 2 && f.TaxTypeId == 123 ).ToList();
適用范圍:當(dāng)我們再勾選條件進(jìn)行查詢或者操縱數(shù)據(jù)庫時,可以任意選擇條件個數(shù)進(jìn)行查詢,而只需調(diào)用同一個方法。(即一個服務(wù)完成多重條件的查詢)減少冗余代碼。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:沒有了
欄 目:C#教程
下一篇:Unity UI拖拽模型選擇功能
本文標(biāo)題:c#中(&&,||)與(&,|)的區(qū)別詳解
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/4561.html
您可能感興趣的文章
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并打開的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的方法
- 01-10C#實現(xiàn)Winform中打開網(wǎng)頁頁面的方法
- 01-10C#實現(xiàn)實體類與字符串互相轉(zhuǎn)換的方法
- 01-10C#實現(xiàn)由四周向中心縮小的窗體退出特效
- 01-10Extjs4如何處理后臺json數(shù)據(jù)中日期和時間
- 01-10C#中DataGridView常用操作實例小結(jié)
- 01-10C#編程獲取資源文件中圖片的方法
- 01-10asp.net中XML如何做增刪改查操作
- 01-10C#利用反射技術(shù)實現(xiàn)去掉按鈕選中時的邊框效果


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10C#中split用法實例總結(jié)
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置