当前位置: 首页 > news >正文

八、C#运算符

C#运算符

晕杜甫是一种告诉编辑器执行特定的数学或逻辑操作的符号。C#有丰富的内置运算符,分类如下:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符

 算术运算符

下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:

运算符描述实例
+把两个操作数相加A + B 将得到 30
-从第一个操作数中减去第二个操作数A - B 将得到 -10
*把两个操作数相乘A * B 将得到 200
/分子除以分母B / A 将得到 2
%取模运算符,整除后的余数B % A 将得到 0
++自增运算符,整数值增加 1A++ 将得到 11
--自减运算符,整数值减少 1A-- 将得到 9

 其他运算符

下表列出了 C# 支持的其他一些重要的运算符,包括 sizeoftypeof 和 ? :

运算符描述实例
sizeof()返回数据类型的大小。sizeof(int),将返回 4.
typeof()返回 class 的类型。typeof(StreamReader);
&返回变量的地址。&a; 将得到变量的实际地址。
*变量的指针。*a; 将指向一个变量。
? :条件表达式如果条件为真 ? 则为 X : 否则为 Y
is判断对象是否为某一类型。If( Ford is Car) // 检查 Ford 是否是 Car 类的一个对象。
as强制转换,即使转换失败也不会抛出异常。Object obj = new StringReader("Hello");
StringReader r = obj as StringReader;

C# 中的运算符优先级

运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。

例如 x = 7 + 3 * 2,在这里,x 被赋值为 13,而不是 20,因为运算符 * 具有比 + 更高的优先级,所以首先计算乘法 3*2,然后再加上 7。

下表将按运算符优先级从高到低列出各个运算符,具有较高优先级的运算符出现在表格的上面,具有较低优先级的运算符出现在表格的下面。在表达式中,较高优先级的运算符会优先被计算。

优先级简易概括:有括号先括号,后乘除在加减,然后位移再关系,逻辑完后条件,最后一个逗号 , 。

类别 运算符 结合性 
后缀 () [] -> . ++ - -  从左到右 
一元 + - ! ~ ++ - - (type)* & sizeof 从右到左 
乘除 * / % 从左到右 
加减 + - 从左到右 
移位 << >> 从左到右 
关系 < <= > >= 从左到右 
相等 == != 从左到右 
位与 AND 从左到右 
位异或 XOR 从左到右 
位或 OR 从左到右 
逻辑与 AND && 从左到右 
逻辑或 OR || 从左到右 
条件 ?: 从右到左 
赋值 = += -= *= /= %=>>= <<= &= ^= |= 从右到左 
逗号 从左到右 

 

相关文章:

  • iOS cell的复用以及自定义cell
  • 【Mybatis-Plus】根据自定义注解实现自动加解密
  • Docker+MySQL:打造安全高效的远程数据库访问
  • windows pyenv-win:pyenv 下载过慢
  • 赶紧收藏!2024 年最常见 20道设计模式面试题(七)
  • nRF Connect固件升级 OTA DFU Library for Mac and iOS, compatible with nRF5x SoCs
  • AI播客下载:The Gradient-AI前沿见解
  • After Effects 2024 mac/win版:创意视效,梦想起航
  • 持续总结中!2024年面试必问 20 道设计模式面试题(七)
  • ElasticSearch(ES)
  • 基于detours的Windows Hook
  • 每天五分钟计算机视觉:如何在现有经典的卷积神经网络上进行微调
  • 阿里云 app 备案 获取公钥和md5
  • OS复习笔记ch11-3
  • 1. zabbix监控服务器部署
  • [译]前端离线指南(上)
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Js基础知识(一) - 变量
  • JS学习笔记——闭包
  • Mithril.js 入门介绍
  • npx命令介绍
  • Redis学习笔记 - pipline(流水线、管道)
  • ubuntu 下nginx安装 并支持https协议
  • Vue实战(四)登录/注册页的实现
  • Web Storage相关
  • 深度学习在携程攻略社区的应用
  • 时间复杂度与空间复杂度分析
  • 微信小程序实战练习(仿五洲到家微信版)
  • 我建了一个叫Hello World的项目
  • 在Mac OS X上安装 Ruby运行环境
  • (HAL库版)freeRTOS移植STMF103
  • (libusb) usb口自动刷新
  • (二)linux使用docker容器运行mysql
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (四)Linux Shell编程——输入输出重定向
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)iOS字体
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .net core 依赖注入的基本用发
  • .NET 药厂业务系统 CPU爆高分析
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • .so文件(linux系统)
  • /usr/bin/env: node: No such file or directory
  • @TableLogic注解说明,以及对增删改查的影响
  • [ACP云计算]组件介绍
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [android] 练习PopupWindow实现对话框
  • [ARM]ldr 和 adr 伪指令的区别
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [C++]STL之map
  • [C++数据结构之看懂就这一篇]图(上)
  • [C++随笔录] 红黑树
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)
  • [FTP]pureftp部署和优化