跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C Sharp 运算符
”︁(章节)
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= C#运算符 = '''C#运算符'''是用于在程序中执行各种数学、逻辑和位运算的特殊符号。它们是构建表达式的基础元素,允许开发者对变量和值进行计算、比较和操作。C#提供了丰富的运算符类型,包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。 == 运算符类型 == === 算术运算符 === 算术运算符用于执行基本的数学运算,如加法、减法、乘法、除法等。 {| class="wikitable" |+ 算术运算符列表 ! 运算符 !! 描述 !! 示例 |- | <code>+</code> || 加法 || <code>a + b</code> |- | <code>-</code> || 减法 || <code>a - b</code> |- | <code>*</code> || 乘法 || <code>a * b</code> |- | <code>/</code> || 除法 || <code>a / b</code> |- | <code>%</code> || 取模(余数) || <code>a % b</code> |- | <code>++</code> || 自增 || <code>a++</code> 或 <code>++a</code> |- | <code>--</code> || 自减 || <code>a--</code> 或 <code>--a</code> |} ==== 示例代码 ==== <syntaxhighlight lang="csharp"> int a = 10; int b = 3; Console.WriteLine(a + b); // 输出: 13 Console.WriteLine(a - b); // 输出: 7 Console.WriteLine(a * b); // 输出: 30 Console.WriteLine(a / b); // 输出: 3 (整数除法) Console.WriteLine(a % b); // 输出: 1 (余数) </syntaxhighlight> === 关系运算符 === 关系运算符用于比较两个值,返回布尔结果(<code>true</code> 或 <code>false</code>)。 {| class="wikitable" |+ 关系运算符列表 ! 运算符 !! 描述 !! 示例 |- | <code>==</code> || 等于 || <code>a == b</code> |- | <code>!=</code> || 不等于 || <code>a != b</code> |- | <code>></code> || 大于 || <code>a > b</code> |- | <code><</code> || 小于 || <code>a < b</code> |- | <code>>=</code> || 大于或等于 || <code>a >= b</code> |- | <code><=</code> || 小于或等于 || <code>a <= b</code> |} ==== 示例代码 ==== <syntaxhighlight lang="csharp"> int x = 5; int y = 10; Console.WriteLine(x == y); // 输出: False Console.WriteLine(x != y); // 输出: True Console.WriteLine(x > y); // 输出: False Console.WriteLine(x < y); // 输出: True </syntaxhighlight> === 逻辑运算符 === 逻辑运算符用于组合多个布尔表达式。 {| class="wikitable" |+ 逻辑运算符列表 ! 运算符 !! 描述 !! 示例 |- | <code>&&</code> || 逻辑与(AND) || <code>a && b</code> |- | <code>||</code> || 逻辑或(OR) || <code>a || b</code> |- | <code>!</code> || 逻辑非(NOT) || <code>!a</code> |} ==== 示例代码 ==== <syntaxhighlight lang="csharp"> bool isTrue = true; bool isFalse = false; Console.WriteLine(isTrue && isFalse); // 输出: False Console.WriteLine(isTrue || isFalse); // 输出: True Console.WriteLine(!isTrue); // 输出: False </syntaxhighlight> === 位运算符 === 位运算符直接对二进制位进行操作。 {| class="wikitable" |+ 位运算符列表 ! 运算符 !! 描述 !! 示例 |- | <code>&</code> || 按位与 || <code>a & b</code> |- | <code>|</code> || 按位或 || <code>a | b</code> |- | <code>^</code> || 按位异或 || <code>a ^ b</code> |- | <code>~</code> || 按位取反 || <code>~a</code> |- | <code><<</code> || 左移 || <code>a << b</code> |- | <code>>></code> || 右移 || <code>a >> b</code> |} ==== 示例代码 ==== <syntaxhighlight lang="csharp"> int num1 = 5; // 二进制: 0101 int num2 = 3; // 二进制: 0011 Console.WriteLine(num1 & num2); // 输出: 1 (0001) Console.WriteLine(num1 | num2); // 输出: 7 (0111) Console.WriteLine(num1 ^ num2); // 输出: 6 (0110) Console.WriteLine(~num1); // 输出: -6 (补码表示) Console.WriteLine(num1 << 1); // 输出: 10 (1010) Console.WriteLine(num1 >> 1); // 输出: 2 (0010) </syntaxhighlight> === 赋值运算符 === 赋值运算符用于给变量赋值,并可以结合算术或位运算。 {| class="wikitable" |+ 赋值运算符列表 ! 运算符 !! 描述 !! 示例 |- | <code>=</code> || 简单赋值 || <code>a = b</code> |- | <code>+=</code> || 加后赋值 || <code>a += b</code> |- | <code>-=</code> || 减后赋值 || <code>a -= b</code> |- | <code>*=</code> || 乘后赋值 || <code>a *= b</code> |- | <code>/=</code> || 除后赋值 || <code>a /= b</code> |- | <code>%=</code> || 取模后赋值 || <code>a %= b</code> |- | <code>&=</code> || 按位与后赋值 || <code>a &= b</code> |- | <code>|=</code> || 按位或后赋值 || <code>a |= b</code> |- | <code>^=</code> || 按位异或后赋值 || <code>a ^= b</code> |- | <code><<=</code> || 左移后赋值 || <code>a <<= b</code> |- | <code>>>=</code> || 右移后赋值 || <code>a >>= b</code> |} ==== 示例代码 ==== <syntaxhighlight lang="csharp"> int value = 10; value += 5; // 等价于 value = value + 5 Console.WriteLine(value); // 输出: 15 </syntaxhighlight> == 运算符优先级 == 运算符优先级决定了表达式中运算的执行顺序。以下是常见运算符的优先级(从高到低): # 括号 <code>()</code> # 一元运算符(如 <code>++</code>, <code>--</code>, <code>!</code>, <code>~</code>) # 乘法、除法、取模(<code>*</code>, <code>/</code>, <code>%</code>) # 加法、减法(<code>+</code>, <code>-</code>) # 移位运算符(<code><<</code>, <code>>></code>) # 关系运算符(<code><</code>, <code>></code>, <code><=</code>, <code>>=</code>) # 相等运算符(<code>==</code>, <code>!=</code>) # 位与(<code>&</code>) # 位异或(<code>^</code>) # 位或(<code>|</code>) # 逻辑与(<code>&&</code>) # 逻辑或(<code>||</code>) # 条件运算符(<code>?:</code>) # 赋值运算符(<code>=</code>, <code>+=</code>, <code>-=</code> 等) === 优先级示例 === <syntaxhighlight lang="csharp"> int result = 5 + 3 * 2; // 先计算 3 * 2,再 +5 Console.WriteLine(result); // 输出: 11 bool logicalResult = true || false && false; // && 优先级高于 || Console.WriteLine(logicalResult); // 输出: True </syntaxhighlight> == 实际应用案例 == === 案例1:计算圆的面积 === <syntaxhighlight lang="csharp"> double radius = 5.0; double area = Math.PI * radius * radius; // 使用乘法运算符 Console.WriteLine($"圆的面积: {area}"); </syntaxhighlight> === 案例2:判断闰年 === <syntaxhighlight lang="csharp"> int year = 2024; bool isLeapYear = (year % 400 == 0) || (year % 100 != 0 && year % 4 == 0); Console.WriteLine($"{year}年是闰年吗? {isLeapYear}"); </syntaxhighlight> == 高级主题:运算符重载 == C#允许为自定义类型重载运算符,使其支持类似内置类型的运算。 <syntaxhighlight lang="csharp"> public class Vector { public int X { get; set; } public int Y { get; set; } // 重载 + 运算符 public static Vector operator +(Vector v1, Vector v2) { return new Vector { X = v1.X + v2.X, Y = v1.Y + v2.Y }; } } // 使用示例 Vector v1 = new Vector { X = 1, Y = 2 }; Vector v2 = new Vector { X = 3, Y = 4 }; Vector sum = v1 + v2; // 使用重载的 + 运算符 Console.WriteLine($"向量和: ({sum.X}, {sum.Y})"); </syntaxhighlight> == 总结 == C#提供了丰富的运算符类型,使开发者能够高效地处理各种计算和逻辑操作。理解运算符的优先级和结合性对于编写正确的表达式至关重要。对于高级用户,运算符重载提供了扩展自定义类型行为的强大工具。 通过本指南,您应该已经掌握了C#运算符的核心概念及其实际应用。建议通过实践练习来巩固这些知识。 [[Category:编程语言]] [[Category:C Sharp]] [[Category:C Sharp 基础]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)