当前位置:首页 > 编程技术 > 正文内容

C#运算符执行顺序对照表

yc8882年前 (2022-11-28)编程技术365

C#运算符执行顺序对照表

优先级运算符名称或含义使用形式结合方向说明
1[]数组下标数组名[整型表达式]左到右
()圆括号(表达式)/函数名(形参表)
.成员选择(对象)对象.成员名
->成员选择(指针)对象指针->成员名
2-负号运算符-表达式右到左单目运算符
(类型)强制类型转换(数据类型)表达式
++自增运算符++变量名/变量名++单目运算符
--自减运算符--变量名/变量名--单目运算符
*取值运算符*指针表达式单目运算符
&取地址运算符&左值表达式单目运算符
!逻辑非运算符!表达式单目运算符
~按位取反运算符~表达式单目运算符
sizeof长度运算符sizeof表达式/sizeof(类型)
3/表达式/表达式左到右双目运算符
*表达式*表达式双目运算符
%余数(取模)整型表达式%整型表达式双目运算符
4+表达式+表达式左到右双目运算符
-表达式-表达式双目运算符
5<<左移表达式<<表达式左到右双目运算符
>>右移表达式>>表达式双目运算符
6>大于表达式>表达式左到右双目运算符
>=大于等于表达式>=表达式双目运算符
<小于表达式<表达式双目运算符
<=小于等于表达式<=表达式双目运算符
7==等于表达式==表达式左到右双目运算符
!=不等于表达式!=表达式双目运算符
8&按位与整型表达式&整型表达式左到右双目运算符
9^按位异或整型表达式^整型表达式左到右双目运算符
10|按位或整型表达式|整型表达式左到右双目运算符
11&&逻辑与表达式&&表达式左到右双目运算符
12||逻辑或表达式||表达式左到右双目运算符
13?:条件运算符表达式1?表达式2:表达式3右到左三目运算符
14=赋值运算符变量=表达式右到左
/=除后赋值变量/=表达式
*=乘后赋值变量*=表达式
%=取模后赋值变量%=表达式
+=加后赋值变量+=表达式
-=减后赋值变量-=表达式
<<=左移后赋值变量<<=表达式
>>=右移后赋值变量>>=表达式
&=按位与后赋值变量&=表达式
^=按位异或后赋值变量^=表达式
|=按位或后赋值变量|=表达式
15,逗号运算符表达式,表达式,…左到右从左向右顺序运算

C#中常用运算符优先级别划分

  1. 单元运算符和括号

  2. 常规算术运算符

  3. 位移运算符

  4. 比较运算符

  5. 逻辑运算符

  6. 各种赋值运算符

  7. 右位(后缀)单元运算符


C#运算符详细说明

  1. 在这一级中,有++、--(做为前缀)、()、+、-(做为单元运算符)、!、~

    这一级中都是单元运算符,除了其中那一对特殊的具有改变任何运算优先级的括号

    这此可以看出,在定义表达式中,那些单元运算符的优先级是很高的,可能是因为它们都直接作用于操作数吧

    只有两个单元运算符的优先级不在第一级中,它们因为特殊的原因出现在了后面

  2. 在常规算术运算符中,有我们经常使用的*、/、%、+、-,因为他们使用得较多,所以也排在较高的位置。

  3. 这一级是两个特殊的位操作符,<< 和 >>,它们是所有二元操作符中除常规运算符外优先级最高的了,可能是因为与比较运算符、逻辑运算符比起来,这一组操作符进行的还是数值的计算

  4. 比较运算符,包括<、>、<=、>=、==、!=,一共六个,这里有一个特点,就小于优先于大于

  5. 逻辑运算符,逻辑运算符原本有四种,但用于单元的“非”运算符排在了前面,所以这里面就只有&、^、|,再加上两个补充的用于提高代码效率的运算符&&、||等共有五个

  6. 赋值运算符,这一级最多,几乎前面出现过的二元运算符,在这里加上个“=”号就成为一个赋值运算符

    首先当然最基本的赋值运算符“=”;然后是常规算术运算符演变来的“*=、/=、%=、+=、-=”,它们的顺序和常规算术符的顺序一样

    然后是位移运算符和逻辑运算符,也按它们演变前的顺序排列,为“<<=、>>=、&=、^=、|=”

    因为比较运算符所产生的结果的数据类型和它的运算数的数据类型不同,所以它们没有相应的赋值运算符

  7. 最后一级,就是那两个最后的单元运算符后缀版的++、--

    它们的出现就是为了做为那两个前缀版的==、--的补充(那两个的优先级太高了,人们需要两个优先级不那么高的)

    以方便设计表达式,所以这两个的优先级当然要排在最后了


C#运算符总结优先级顺序

  • 无论是从上而下,还是从左到右,都是越上和越前面,优先级越高

  • 第一级:++、--(做为前缀)、()、+、-(做为单元运算符时)、!、~

  • 第二级:*、/、%、+、-

  • 第三级:<<、>>位移运算

  • 第四级:<、>、<=、>=、==、!=(逻辑比较)

  • 第五级:&、^、|、&&、||

  • 第六级:=、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=

  • 第七级:++、--(做为后缀)


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10120.html

标签: C#
分享给朋友:

“C#运算符执行顺序对照表” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】Thymeleaf报错Error resolving template “XXX”

【说站】Thymeleaf报错Error resolving template “XXX”

修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

【说站】利用Webhook实现Java项目自动化部署

【说站】利用Webhook实现Java项目自动化部署

用webhook就能实现Java项目自动部署,其实原理很简单。费话不多说,直接往下看教程。1. 创建gitee仓库并初始化2. 在linux安装git3. 在宝塔的软件的商店里下载Webhook4....

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...

【说站】linux中redis如何以redis用户重启?

【说站】linux中redis如何以redis用户重启?

通过上图我们可以看到,目前状态是已经以 redis 用户启动着,我想修改下 redis 的密码,然后怎么以 redis 用户重启呢?redis 是 nologin 用户,不能通过 su redis 切...

【说站】jenkins配置ssh服务器并配置ssh servers

【说站】jenkins配置ssh服务器并配置ssh servers

1.系统管理-》配置-》Publish over SSH当然,没有这个插件的第一时间去插件管理里面去下载2.生成秘钥任意找一台服务器,生成即可。2.1已有秘钥无须在生成,只需要吧公钥配置到将要配置的s...