C# 运算符、表达式和数据类型转换笔记
运算符
C# 中的运算符用于执行程序代码中的各种操作。主要分为以下几类:
- 算术运算符:+, -, *, /, %, ++, --
- 关系运算符:==, !=, >, <, >=, <=
- 逻辑运算符:&&, ||, !, &, |, ^
- 位运算符:&, |, ^, ~, <<
- 赋值运算符:=, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, ??=
表达式
表达式是一系列运算符和操作数的组合,它可以计算出一个值。表达式可以包含:
- 字面量:直接的值,如 5, "hello", true。
- 变量:存储在内存中的值,如 int number = 5;
- 方法调用:执行一个方法并返回结果,如 Math.Sqrt(4);
- 运算符:上面提到的各种运算符。
数据类型转换
数据类型转换是将一种数据类型转换为另一种数据类型的过程。C# 提供了两种类型转换:
- 隐式转换(Implicit Conversion):不需要显式代码,编译器自动完成。通常发生在较小范围的类型转换为较大范围的类型时,如 int 到 long。
- 显式转换(Explicit Conversion):需要使用强制类型转换,如 (int)someDouble。
转换操作符
类型转换关键字:as, is, cast, checked, unchecked。
- as:尝试将对象引用转换为另一种类型,如果转换失败则返回 null。
- is:检查一个对象是否是特定类型或其派生的类型,返回 bool。
- cast:用于将值类型或引用类型转换为另一种类型,必须保证转换是有效的,否则会抛出异常。
- checked:在算术运算时检查溢出。
- unchecked:在算术运算时不检查溢出。
常见转换示例
整型转换:
代码语言:javascript代码运行次数:0运行复制csharp
int i = 10;
long l = (long)i; // 显式转换
double d = i; // 隐式转换
浮点型转换:
代码语言:javascript代码运行次数:0运行复制double pi = 3.14;
int radius = 5;
double area = pi * radius * radius; // 隐式转换
csharp 字符串转换:
代码语言:javascript代码运行次数:0运行复制int number = 42;
string str = number.ToString(); // 隐式转换
使用 as 和 is:
代码语言:javascript代码运行次数:0运行复制object obj = "Hello, World!";
string s = obj as string; // s will be "Hello, World!"
bool isString = obj is string; // isString will be true
注意事项
隐式转换可能会丢失精度,特别是在从浮点数转换为整数时。 显式转换可能会抛出异常,特别是当转换不可能时(如将字符串 "abc" 转换为整数)。 使用 checked 和 unchecked 可以控制溢出检查的行为。 希望这篇笔记能帮助你更好地理解和使用C#中的运算符、表达式和数据类型转换。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024年11月24日,如有侵权请联系 cloudcommunity@tencent 删除异常c#笔记对象数据类型