C#中的类型转换机制是什么?

NET中,所有类型都继承自System.Object类型,因此可以很容易的获得对象的准确类型,方法是:GetType()方法。

C#中的类型转换机制有两种分类方法:

一种是根据转换方式的不同进行划分,可以分为显式 (Explicit) 转换和隐式 (Implicit) 转换两种;

另外一种是根据源类型和目标类型之间的关系进行划分,可以分为变换 (Conversion)、投射 (Cast)和装箱/拆箱 (Boxing/Unboxing)。

隐式转换就是系统默认的、不需要加以特别声明也不用特殊的方法就可以进行的转换。在隐式转换过程中,编译器无需对转换进行详细检查就能够安全地执行转换。

–隐式数值转换实际上就是从低精度的数值类型到高精度的数值类型的转换。

–隐式枚举转换允许把十进制整数0转换成任何枚举类型,对应其它的整数则不存在这种隐式转换。还是让我们用例子来说明。

–隐式引用转换是指一类引用类型之间的转换,这种转换总是可以成功,因此不需要在运行时进行任何检查。

–装箱转换允许将“值类型”隐式转换为“引用类型”。

显式转换又叫强制类型转换。与隐式转换正好相反,显式转换需要用户明确地指定转换的类型。--它并不是总能成功,而且常常可能引起
信息丢失。为了避免在进行强制类型转换时由于目标类型无效,而导致运行时抛出InvalidCastException异常,C#提供了IS与AS操作
符进行类型判断与“安全”的强制类型转换。
原文地址:https://www.cnblogs.com/miralce/p/2915895.html