as
as关键字用于将一个对象转换为指定类型(或其派生类型)。如果转换成功,则返回转换后的对象;如果对象不能转换为指定类型,则返回null。- 当使用
as进行类型转换时,如果目标类型与原始对象类型不兼容,不会引发异常,而是返回null。DerivedClass derivedObj = baseObj as DerivedClass; if (derivedObj != null) {// 转换成功,可以使用derivedObj对象 }
is
is关键字用于检查一个对象是否是指定类型(或其派生类型)的实例。如果对象是指定类型的实例,则返回true;否则返回false。- 当使用
is进行类型检查时,如果对象是指定类型的实例,则返回true;否则返回false。if (baseObj is DerivedClass) {// baseObj是DerivedClass类型的实例 }
总结
as关键字用于尝试将一个对象转换为指定类型,如果转换失败,则返回null。is关键字用于检查一个对象是否是指定类型的实例,返回true或false。- 需要注意的是,
as和is关键字只能用于引用类型,不能用于值类型。在进行类型转换和类型检查时,应谨慎处理,以避免出现运行时错误。