跳转至

类型转换:as 、 强转()和is

总结:引用类型尽量用as,值类型必须用强转,未知类型的话需要先判定。

as

引用类型尽可能使用,底层是运行时判断类型信息进行转换的。 - 安全性强:失败为null,不抛异常 - 效率高 - 不能使用自定义转换。 - 不能转换成非null值类型,因为值类型不能为null。(C#2.0提供了Nullable类型,允许定义包含null值,但是Unity还没有提供到位,默认初始化为0)

普通强转()

  • 强转失败,需要异常处理
  • 自定义转换:只作用于编译时转换,运行时转换会发生异常

is 的作用

可以通过is来判断是值类型还是引用类型,用来做区别处理。