【C#语言入门】10. 操作符详解(下)

【C#语言入门】10. 操作符详解(下)

四、各类操作符的示例

  1. (T)x
    强制类型转换符
csharp 复制代码
//ushort的maxvalue是65535
uint x = 65536;
ushort y =(ushort)x;
Console.WriteLine(y);//结果为0

类型转换

  • 隐式(implicit)类型转换
    • 不丢失精度的转换(低精度------>高精度(范围完全涵盖了低精度))
    • 子类向父类的转换
    • 装箱
  • 显式(explicit)类型转换
    • 有可能丢失精度(甚至发生错误)的转换,即cast
    • 拆箱
    • 使用Convert类(几乎可以把任意类型转换为任意类型)
    • ToString方法与各数据类型的Parse/TryParse方法(parse只能解析结构正确的字符串,tryparse可以先判断一下是不是结构正确的字符串)
  • 自定义类型转换操作符
  1. *、/、%、+、-

    基本无特殊注意点,要注意两边数据类型不同时,遵循"数值提升"原则。

  2. <<、>>

    位移操作符,数据在内存当中的二进制结构,向左或者向右进行平移。左移加进来的一定是0,右移,操作的是正数,补进来的是0;负数的话,补进来的是1。

csharp 复制代码
int x = 7;
int y = x << 1;
//x= 00000111, y= 00001110,会有溢出如果一直移的话
  1. <、>、>=、<=、!=、==、is、as
    关系操作符,所有关系操作符结果都是布尔类型。is是判断实例的。
csharp 复制代码
teacher t = new Teacher();
var result = t is Teacher;
//结果为true
object o = new Teacher();
Teacher t = o as Theacher;
  1. &、^、|

    位与、位异或、位或,对位进行操作。

  2. &&、||

    条件与、条件或,结果都是布尔类型。条件与的短路:当条件与发现左边的结果已经是"假"值了以后,就不会执行右边部分。

  3. ??

    null合并操作符

csharp 复制代码
int? x =null;
int y = x??1;//x如果是null值,则赋y为1
Console.WriteLine(y);//y=1
  1. ?:
    条件操作符,唯一一个三个值互动的操作符,结果为真返回冒号左边的值,反之返回右边的值。
csharp 复制代码
int x =80;
string str = x >= 60 ?"Pass":"Failed";
Console.WriteLine(str);
相关推荐
边境悍匪9 分钟前
蜗牛学苑 Java 智能体学习 Day39|SpringAI 会话存储、Function‑Call 工具调用、MCP 思维导图复盘
java·开发语言·spring boot·学习·阿里云
慧都小妮子13 分钟前
.NET 报表控件选型对比:Stimulsoft 与 FastReport 怎么选
c#·.net·报表开发·数据可视化·报表控件·报表引擎选型
302wanger15 分钟前
分享一个工作习惯:整点看即时消息
算法
万物智能信息科技22 分钟前
RK3568 的多路显示移植—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
linux·开发语言·华为·开源·harmonyos
蓝悦无人机35 分钟前
Qt Design Studio(QDS)4.8.2项目文件结构详解
开发语言·qt·qt creator·qds·项目文件结构·qtc
yxlalm1 小时前
4.java秒杀项目第四课-后端商品后台接口
java·开发语言
孙启超1 小时前
【AI开发之Rust】第 1 课:认识 Rust 与开发环境 —— 装好工具链,跑通第一个程序
开发语言·人工智能·后端·ai·rust·安全架构
君顾11 小时前
家政派单小程序源码开发实战:从零搭建到上线全流程指南
java·开发语言·家政派单
洋不写bug2 小时前
排序(一)基础排序,插入|希尔|冒泡|直接选择排序详解
java·算法·排序算法·插入排序·冒泡排序·希尔排序·直接选择排序
牧羊人.3332 小时前
动手学深度学习 03 | 卷积神经网络实现手写数字识别
人工智能·深度学习·神经网络·算法·cnn