类型转换-C#铸造这两种方式有何不同

本文关键字:方式 何不同 两种 -C# 类型转换 | 更新日期: 2023-09-27 18:00:10

在C#中,如果我执行,则强制转换有什么区别

MyType  mytype = (MyType) obj;

MyType  mytype = obj as MyType;

类型转换-C#铸造这两种方式有何不同

obj无法转换为MyType时,第一个方法失败。当您使用第二种方式时,mytype要么是obj广播到MyType,要么是空的(如果不能广播)。

第二个只能与引用类型(类和接口)一起使用,如果变量不是强制转换类型,则将返回null。第一个适用于任何类型(structs也是),并将引发异常。