c#中(&&,||)與(&,|)的區(qū)別是什么,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
北鎮(zhèn)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
對(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è)查詢條件,則執(zhí)行。True && False = False (左邊為true,再驗(yàn)證右邊為false,返回結(jié)果false)假如這是一個(gè)查詢條件,不執(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,什么都沒有騙人的,則為假)運(yùn)算結(jié)果只有下列四種情況。
1 & 1 = 11 & 0 = 00 & 1 = 00 & 0 = 01 | 1 = 11 | 0 = 10 | 1 = 10 | 0 = 0
&&和&對(duì)于他們各自的運(yùn)算對(duì)象來(lái)說,結(jié)果是一樣的。
下面用一段代碼來(lái)說明||在實(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)行查詢或者操縱數(shù)據(jù)庫(kù)時(shí),可以任意選擇條件個(gè)數(shù)進(jìn)行查詢,而只需調(diào)用同一個(gè)方法。(即一個(gè)服務(wù)完成多重條件的查詢)減少冗余代碼。
看完上述內(nèi)容,你們掌握c#中(&&,||)與(&,|)的區(qū)別是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!