c#中(&&,||)與(&,|)的區(qū)別詳解
對(duì)于(&&,||),運(yùn)算的對(duì)象是邏輯值,也就是True/False
&&相當(dāng)與中文的并且,||相當(dāng)于中文的或者 。(叫做邏輯運(yùn)算符又叫短路運(yùn)算符)
運(yùn)算結(jié)果只有下列四種情況。
True && True = True (左邊為true,再驗(yàn)證右邊也為true,返回結(jié)果true)假如這是一個(gè)查詢(xún)條件,則執(zhí)行。
True && False = False (左邊為true,再驗(yàn)證右邊為false,返回結(jié)果false)假如這是一個(gè)查詢(xún)條件,不執(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,再驗(yàn)證右邊為true,返回結(jié)果true)............執(zhí)行
False || False = False (左邊為false,再驗(yàn)證右邊也為false,返回結(jié)果false).......不執(zhí)行
對(duì)于(&,|),運(yùn)算的對(duì)象是位,也就是1/0,叫做位運(yùn)算符
理解:0為false,1為true(通用:0表示假,所有非零的數(shù)表示真。 ######方便記憶:0,什么都沒(méi)有騙人的,則為假)
運(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
&&和&對(duì)于他們各自的運(yùn)算對(duì)象來(lái)說(shuō),結(jié)果是一樣的。
下面用一段代碼來(lái)說(shuō)明||在實(shí)際代碼中的運(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時(shí),param.TaxTypeId.HasValue為true,發(fā)生短路現(xiàn)象,右邊不執(zhí)行,返回結(jié)果true。
則實(shí)際執(zhí)行代碼:var data = svc.DeclarationHeads.Include("TaxType").Where(f => f.CorporationCode == param.CorporationCode && f.FlowSign == 2 ).ToList();
當(dāng)傳入的參數(shù)中TaxTypeId==123時(shí),param.TaxTypeId.HasValue為false,執(zhí)行右邊的代碼,即f.TaxTypeId == 123,
則實(shí)際執(zhí)行代碼:var data = svc.DeclarationHeads.Include("TaxType").Where(f => f.CorporationCode == param.CorporationCode && f.FlowSign == 2 && f.TaxTypeId == 123 ).ToList();
適用范圍:當(dāng)我們?cè)俟催x條件進(jìn)行查詢(xún)或者操縱數(shù)據(jù)庫(kù)時(shí),可以任意選擇條件個(gè)數(shù)進(jìn)行查詢(xún),而只需調(diào)用同一個(gè)方法。(即一個(gè)服務(wù)完成多重條件的查詢(xún))減少冗余代碼。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 淺析c#范型中的特殊關(guān)鍵字where & default
- 使用C#開(kāi)源文件實(shí)時(shí)監(jiān)控工具Tail&TailUI介紹
- ASP.NET性能優(yōu)化小結(jié)(ASP.NET&C#)
- C#運(yùn)算符大全_各種運(yùn)算符號(hào)的概述及作用
- C# 位運(yùn)算符整理
- c#的異或運(yùn)算符介紹
- C#重載運(yùn)算符詳解
- C#中38個(gè)常用運(yùn)算符的優(yōu)先級(jí)的劃分和理解
- C#中重載相等(==)運(yùn)算符示例
- C#6 null 條件運(yùn)算符
- C#中is與As運(yùn)算符號(hào)的使用詳解
相關(guān)文章
C#實(shí)現(xiàn)強(qiáng)制關(guān)閉當(dāng)前程序進(jìn)程
這篇文章主要介紹了C#實(shí)現(xiàn)強(qiáng)制關(guān)閉當(dāng)前程序進(jìn)程,本文直接給出實(shí)現(xiàn)代碼,可以實(shí)現(xiàn)完全Kill掉不留痕跡,需要的朋友可以參考下2015-06-06
C#實(shí)現(xiàn)讀取USB轉(zhuǎn)串口參數(shù)并顯示在ComboBox
在很多應(yīng)用程序中,尤其是那些需要與外部硬件通信的程序中,自動(dòng)檢測(cè)和讀取串口參數(shù)是一個(gè)非常有用的功能,下面我們就來(lái)看看如何在C#中實(shí)現(xiàn)這一功能吧2024-01-01
C#中的Task.WaitAll和Task.WaitAny方法介紹
這篇文章介紹了C#中的Task.WaitAll和Task.WaitAny方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
WPF實(shí)現(xiàn)上下滾動(dòng)字幕效果
這篇文章主要為大家詳細(xì)介紹了WPF實(shí)現(xiàn)上下滾動(dòng)字幕效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10

