C#基础学习--转换

目录

什么是转换

隐式转换

显式转换和强制转换

​编辑

转换的类型

数字的转换

​编辑 隐式数字转换

溢出检测上下文

显式数字转换 

扫描二维码关注公众号,回复: 14933098 查看本文章

引用转换

 隐式引用转换

显式引用转换

有效显式引用转换

装箱转换

装箱是创建副本

装箱转换

拆箱转换

 用户自定义转换

用户自定义转换的约束

 is 运算符

 as 运算符


什么是转换

隐式转换

有些类型的转换不会丢失数据或精度。

显式转换和强制转换

如果使用强制类型转换,就意味着要承担执行操作可能引起的丢失数据的后果

转换的类型

数字的转换

 隐式数字转换

 没有路径的就是需要显式转换,有路径的就是可以隐式转换

溢出检测上下文

显式数字转换 

 虚线路径表示显式转换

引用转换

引用类型对象由内存中的两部分组成:引用和数据

 隐式引用转换

所有的引用类型可以隐式转换成object 类型

任何类型可以隐式转换到它继承的接口

类可以隐式转换到  :    他继承链中的任何类,它实现的任何接口

显式引用转换

显式引用转换是从一个普通类型到一个更精确类型的引用转换

显式转换包括:   从object到任何引用类型的转换      从基类到从它继承的类的转换

有效显式引用转换

装箱转换

包括值类型在内的所有C#类型都派生自 object 类型。默认情况下在堆上不包括它们的对象组件,如果需要对象组件,可以通过装箱。装箱是一种隐式转换,它接受值类型的值,根据这个值在堆上创建一个完整的引用类型对象并返回对象引用

装箱是创建副本

返回的是值的引用类型的副本,在装箱产生后,该值有两份副本--原始值类型和引用类型副本,每一个都可以独立操作

装箱转换

拆箱转换

拆箱是把装箱后的对象转换回值类型的过程

 用户自定义转换

用户自定义转换的约束

 多步转换:

 is 运算符

有些转换是不成功的,并且会在运行时抛出一个InvalidCastException异常,我们可以使用is运算符来检查转换是否会成功

Expr  是源表达式

 as 运算符

as 运算符和强制运算符类似,只是它不抛出异常,如果转换失败,它返回null 而不是抛出异常

猜你喜欢

转载自blog.csdn.net/zaizai1007/article/details/130182732
今日推荐