c#基本语法 の is 和 as



1.类型转换

任何类型都可以转化为其基类型,用隐式转化完成
任何对象都可以转化为其派生类,但必须显示转换,如 (类型)对象名
使用 GetType 可以获得任何对象的精确类型
基类型可以通过 Convert 进行显示转换
除了string以外,其他类型都有 parse 方法,用于将字符串类型转化成对应的基本类型。例如:double.Parse(string)等同于 Convert.ToDouble(string)
值类型和引用类型之间的转换称为装箱和拆箱


2. is 和 as

is:检查是否与给定类型兼容,并不进行实际的转换。如果判断类型引用为null,则返回false。由于仅仅判断是否兼容,因此不会抛出异常。使用范围,只适用于引用类型转换、装箱转换和拆箱转换,而不支持值类型转换。

as:用于两个应用类型之间进行转换,如果转换失败返回null,并不抛出异常,因此转换是否成功可以通过结果为null进行判断,并且只有在运行时才能判断。AS运算符有一定适用范围,他只适用于引用类型或可以为null的类型。

is 运算符是判断是否可以转换
as 运算符进行类型转换


在实际工作中尽量使用 AS 运算符的原因:

无论是 as 还是 is 运算符,都比直接使用 () 直接强类型转换更安全
不会抛出异常,免除使用 try…catch 进行异常捕获和系统开销,只需要判断是否为 null
使用 AS 比IS 性能更好(c#4.0权威指南上是这么说的)

猜你喜欢

转载自blog.csdn.net/zhaozhao236/article/details/112557455