c#面试基础语法——as和is的区别

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关键字用于检查一个对象是否是指定类型的实例,返回truefalse
  • 需要注意的是,asis关键字只能用于引用类型,不能用于值类型。在进行类型转换和类型检查时,应谨慎处理,以避免出现运行时错误。

你可能感兴趣的:(c#面试,c#)