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

C#运算符与表达式详解

在C#编程中,运算符和表达式是构建复杂逻辑和处理数据的关键元素。以下是对C#运算符与表达式的详细解析:

一、运算符

运算符是一种特殊的符号,用于执行各种数学、逻辑和其他操作。C#中的运算符可以分为以下几类:

  1. 算术运算符

    • +:加法运算符,用于将两个数值相加。
    • -:减法运算符,用于将一个数值减去另一个数值。
    • *:乘法运算符,用于将两个数值相乘。
    • /:除法运算符,用于将一个数值除以另一个数值。
    • %:取模运算符,用于获取两个数值相除的余数。
    • ++--:自增和自减运算符,用于将变量的值增加或减少1。
  2. 关系运算符

    • ==:等于运算符,用于判断两个数值是否相等。
    • !=:不等于运算符,用于判断两个数值是否不相等。
    • >:大于运算符,用于判断左边的数值是否大于右边的数值。
    • <:小于运算符,用于判断左边的数值是否小于右边的数值。
    • >=:大于等于运算符,用于判断左边的数值是否大于或等于右边的数值。
    • <=:小于等于运算符,用于判断左边的数值是否小于或等于右边的数值。
  3. 逻辑运算符

    • &&:逻辑与运算符,当两个条件都为true时,结果为true。
    • ||:逻辑或运算符,当至少一个条件为true时,结果为true。
    • !:逻辑非运算符,用于取反操作,将true变为false,false变为true。
  4. 赋值运算符

    • =:简单赋值运算符,用于将右边的值赋给左边的变量。
    • 复合赋值运算符,如 +=-=*=/= 等,它们结合了算术运算符和赋值运算符的功能。
  5. 位运算符

    • &:按位与运算符。
    • |:按位或运算符。
    • ^:按位异或运算符。
    • ~:按位取反运算符。
    • <<>>:左移和右移运算符。
  6. 其他运算符

    • ?::条件运算符,也称为三元运算符,根据条件表达式的值返回两个值中的一个。
    • isas:类型检查和转换运算符。
    • typeof:用于获取类型的 System.Type 对象。
    • sizeof:用于获取类型或变量在内存中的大小(以字节为单位)。
    • new:用于创建对象或数组的实例。

二、表达式

表达式是由运算符、变量、常量和函数组成的组合,用于生成计算结果。表达式可以非常简单,只包含一个运算符和两个操作数,也可以非常复杂,包含多个运算符和操作数。

  1. 表达式的类型

    • 算术表达式:由算术运算符、操作数和括号构成的表达式。
    • 关系表达式:由关系运算符将两个表达式连接起来的表达式,其结果类型为 bool
    • 逻辑表达式:由逻辑运算符将布尔值或能返回布尔值的表达式连接起来的表达式。
    • 赋值表达式:带有赋值运算符的表达式,其作用是将赋值符号右边表达式的值赋值给左边的对象。
  2. 表达式的计算

    • 表达式的计算顺序受运算符优先级和结合性的影响。
    • 优先级确定了哪个运算符会先进行计算。
    • 结合性确定了当有多个相同优先级的运算符时,它们是从左到右还是从右到左进行计算。
    • 可以使用括号来改变运算次序,明确指定计算顺序。
  3. 表达式的示例

int x = 5;
int y = 10;
int sum = x + y; // 算术表达式,结果为15
bool isTrue = x > y && y == 10; // 逻辑表达式,结果为false
int result = (x + y) * 2; // 复杂表达式,结果为30

http://www.kler.cn/a/373443.html

相关文章:

  • Android Handler消息机制(五)-HandlerThread完全解析
  • 开源呼叫中心系统 FreeIPCC:呼叫中心录音质检的重要性以及如何进行高效率质检
  • Unity之如何在Linux上部署Dedicated Server专用服务器
  • 延迟队列的安装步骤
  • Kubernetes中的网络模型:Service、Ingress、Pod通信详解
  • VScode + PlatformIO 了解
  • 17_计划任务:at和crontab命令详解
  • ‘’‘’笔记
  • transformControls THREE.Object3D.add: object not an instance of THREE.Object3D.
  • 【K8S】kubernetes-dashboard.yaml
  • 自动化结账测试:使用 Playwright确保电商支付流程的无缝体验【nodejs]
  • docker 相关操作命令
  • 厨艺交流平台:Spring Boot技术实现细节
  • Pyhon中串口通信详解
  • 【Nginx系列】499错误
  • word试题转excel(一键转写excel,无格式要求)
  • 【C++】哈希表模拟:闭散列技术与哈希冲突处理
  • HTML入门教程18:HTML类
  • ef core $ 附近有语法错误_ef core contains $符近语法错
  • 「Mac畅玩鸿蒙与硬件5」鸿蒙开发环境配置篇5 - 熟悉 DevEco Studio 界面
  • 力扣每日一题 冗余连接 并查集
  • (前瞻篇)机器学习与深度学习对比
  • 知识融合是什么? - 给小学生的人工智能科普
  • golang flag介绍和使用
  • 一文带你全面了解Android 虚拟化框架(AVF)
  • 理解 CSS 中的绝对定位与 Flex 布局混用