c#图解教程_第十六章_转换
作者:互联网
转换
定义;转换是接受一个类型的值并使用它作为另一个类型的等价值过程
转换后的值和源值一样的,但其类型为目标类型。
隐式转换和显式转换
隐式转换
显式转换和强制转换
定义:高精度往低精度数据类型转换时,需要使用显式转换
溢出上下文检测
定义:检测某些数值类型转化的过程中是否有数据溢出可使用关键字checked
装箱和拆箱
装箱
定义:值类型转换为引用类型的操作称之为装箱,装箱的本质是创建副本
装箱的其实是在创建引用副本,任何类型都可被隐式的转换为Object类型(装箱)
拆箱
定义:值类型转换为引用类型的操作称之为拆箱
PS:尝试将一个值拆成非原始类型时会抛出一个InvalidCastException异常:指定的转换无效
装箱和拆箱的意义:在使用非泛型的函数方法接受参数时,可以用Object类型通过装箱和拆箱操作获取到任意类型的参数
用户自定义转化
定义:为用户类和结构定义提供隐式和显示转换
class Person{ public string Name; public int Age; public Person(string name,int age) { Name = name; Age = age; } public static implicit operator int(Person p) { return p.Age; } public static implicit operator Person(int i) { return new Person("Nemo",i); } class Program{ static void Main(){ Person bill = new Person("bill",25); } //把Person对象转换为Int int age = bill; Console.WriteLine($"Person Info :{bill.Name},{age}"); //把int转化为Person对象 Person anno = 35; Console.WriteLine($"Person Info {anno.Name} ,{anno.Age}") } //输出结果: Person Info:bill,25 Person Info Nemo,35
is运算符
定义:用于检测类型之间是否可以相互转换,判断返回是一个bool值
as运算符
定义:作用类似于强制转换运算符,只是它不抛出异常,如果转换失败,它返回null而不是抛出异常
as运算符语法
Expr as TargetType
标签:第十六章,转换,定义,c#,Person,int,类型,图解,装箱 来源: https://www.cnblogs.com/FrameCode/p/15158337.html