个人总结:
&与&&区别在与,&&一旦检查出第一个参数为flase,就不会再去检查第二个参数了,而&两个参数都会检查。其作用是提高程序执行性能
对于(&&,||),运算的对象是逻辑值,也就是True/False
&&相当与中文的并且,||相当于中文的或者 。(叫做逻辑运算符又叫短路运算符)
运算结果只有下列四种情况。
True  && True  = True    (左边为true,再验证右边也为true,返回结果true)假如这是一个查询条件,则执行。
True  && False = False   (左边为true,再验证右边为false,返回结果false)假如这是一个查询条件,不执行。
False && True  = False   (左边为false,发生短路现象。右边不再执行,直接返回false).........同样不执行。
False && False = False   (同上)
True  || True  = True    (左边为true,发生短路现象,右边不执行,直接返回true).......执行
True  || False = True    (左边为true,发生短路现象,右边不执行,直接返回true).......执行
False || True  = True    (左边为false,再验证右边为true,返回结果true)............执行
False || False = False   (左边为false,再验证右边也为false,返回结果false).......不执行

对于(&,|),运算的对象是位,也就是1/0,叫做位运算符
理解:0为false,1为true(通用:0表示假,所有非零的数表示真。   ######方便记忆:0,什么都没有骗人的,则为假)
运算结果只有下列四种情况。
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 01 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
&&和&对于他们各自的运算对象来说,结果是一样的。

下面用一段代码来说明||在实际代码中的运用

var data = svc.DeclarationHeads.Include("TaxType").Where(f => f.CorporationCode == param.CorporationCode && f.FlowSign == 2 &&(!param.TaxTypeId.HasValue || f.TaxTypeId == param.TaxTypeId)).ToList();

当传入的参数中TaxTypeId==null时,param.TaxTypeId.HasValue为true,发生短路现象,右边不执行,返回结果true。

则实际执行代码:var data = svc.DeclarationHeads.Include("TaxType").Where(f => f.CorporationCode == param.CorporationCode && f.FlowSign == 2 ).ToList();

当传入的参数中TaxTypeId==123时,param.TaxTypeId.HasValue为false,执行右边的代码,即f.TaxTypeId == 123,

则实际执行代码:var data = svc.DeclarationHeads.Include("TaxType").Where(f => f.CorporationCode == param.CorporationCode && f.FlowSign == 2 &&f.TaxTypeId == 123 ).ToList();

适用范围:当我们再勾选条件进行查询或者操纵数据库时,可以任意选择条件个数进行查询,而只需调用同一个方法。(即一个服务完成多重条件的查询)减少冗余代码。

转载于:https://www.cnblogs.com/kdp0213/p/8533430.html

c#中(,||)与(,|)的区别和应用相关推荐

  1. MyBatis中#{}和${}的区别

    ------------------------siwuxie095 MyBatis 中 #{} 和 ${} 的区别 1.在 MyBatis 的映射配置文件中,动态传递参数有两种方式: (1)#{} ...

  2. Mybatis 中$与#的区别

    1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#{id},当前端把id值1,传入到后台的时候,就相当于 select i ...

  3. mybatis 中#与$的区别

    2019独角兽企业重金招聘Python工程师标准>>> MyBatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #u ...

  4. js中!和!!的区别及用法

    js中!和!!的区别及用法 js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值, 1.!可将变量转换成boolean类型,null.undefined和 ...

  5. Activity中与ListActivity中使用listview区别

    一.Activity中与ListActivity中使用listview区别(本身没多大区别,只是ListActivity在listview的显示上做了一些优化) Activity中使用Listview ...

  6. js中onload和jQuery中的ready区别

    js中onload和jQuery中的ready区别 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. ------>不能写多个(如果有多个,只会执行一个) $(do ...

  7. Go语言中*和的区别

    Go语言中*和&的区别 总结 示例 老是分不清*和&的区别,今天特意总结了一下. 1. 总结 &是取地址符. *可以表示一个变量是指针类型,也可以表示指针类型变量所指向的存储单 ...

  8. python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)

    文章目录 斐波那契数列 阿姆斯特朗数 十进制转二进制bin.八进制oct.十六进制hex 补充进制转换源码 python中::和:的区别 说明:本篇博文的知识点大部分来自 Python3 实例 斐波那 ...

  9. 【ArcGIS风暴】全站仪、RTK测量坐标数据在CASS和ArcGIS中展点的区别和联系(带数据)

    ArcGIS展经纬度点完整教程:[ArcGIS风暴]ArcGIS 10.2导入Excel数据X.Y坐标(经纬度.平面坐标),生成Shapefile点数据图层 目录 1. CASS展点操作步骤 2. A ...

  10. c 中=和==的区别有哪些?

    c 中=和==的区别 1.含义不同: "="是赋值的意思. 它的作用是将一个表达式的值赋给一个左值.一个表达式或者是一个左值,或者是一个右值.所谓左值是指一个能用于赋值运算左边的表 ...

最新文章

  1. R语言ggplot2可视化彩色水平条形图并基于条形长度和数值标签长度、自定义最优化配置标签在条形内部或者条形外部
  2. win7如何添加开机启动程序(开机就自动运行打开)
  3. 你知道面试必问的AOP吗(2),我在华为做Java外包的真实经历
  4. macos 全局快捷键 打开 iterm_在 macOS 上实用的十大软件!你get了吗?
  5. win7/WIN8.1(x64) 下使用MSDE WIN10不行
  6. SAP UI5 fullScreenPageRoutes in Component.js
  7. 视音频编解码技术及其实现
  8. 符号扩展和无符号扩展
  9. HDU-1233-还是畅通工程(最小生成树)
  10. 让shell脚本开机自启动方法
  11. MCGS图库 触摸屏组态图库 触摸屏图库 昆仑通态触摸屏专用CGS
  12. Linux-chmod
  13. 程序员数学(29)–投影与视图
  14. 平安夜 送自己一个小博客
  15. winform 如何控制输入法
  16. Rosalind Java|Longest Increasing Subsequence动态规划算法
  17. Verilog实现25分频电路代码
  18. IObit Uninstaller pro:完全卸载程序,自动清除残余及注册表
  19. 诚邀参加“认知与路径:元宇宙科技传播”线上专题研讨会
  20. python一个文件夹的文件移动到另外一个文件夹

热门文章

  1. LA 2572 Viva Confetti (Geometry.Circle)
  2. Microsoft JDBC Driver 4.0 for SQL Server
  3. 2021年宇华实验中学高考成绩查询,2021年河南高考状元多少分,今年河南高考状元资料名单...
  4. 查询天地图访问配额 https://console.tianditu.gov.cn/api/statistics
  5. 2020-02-16 Git客户端下载
  6. mysql——时间字段类型与C#中datetime
  7. 深入浅出Docker(六):像谷歌一样部署你的应用
  8. Redis for Windows
  9. C#注册类方法到Lua
  10. phoneGap实际开发中的某些雷区