侧边栏壁纸
博主昵称
YunZheng

独处未必孤独,喜欢就是自由

C# 运算符、表达式和数据类型转换笔记

2024年11月24日 820阅读 0评论 2点赞

运算符

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:在算术运算时不检查溢出。

常见转换示例

整型转换:

csharp
int i = 10;
long l = (long)i; // 显式转换
double d = i;    // 隐式转换

浮点型转换:

double pi = 3.14;
int radius = 5;
double area = pi * radius * radius; // 隐式转换

csharp
字符串转换:

int number = 42;
string str = number.ToString(); // 隐式转换

使用 as 和 is:

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#中的运算符、表达式和数据类型转换。

2

—— 评论区 ——

昵称
邮箱
网址
取消
腾讯云自媒体同步曝光计划
腾讯云自媒体同步曝光计划
满足条件的自媒体,入驻腾讯云开发者社区,可分享总价值百万资源包
立即了解
人生倒计时
舔狗日记