C#面:as 和 is 的区别

as 关键字:

  1. as 关键字用于将一个对象转换为指定类型,如果转换成功,则返回该类型的实例;如果转换失败,则返回 null 。
  2. as 关键字只能用于引用类型之间的转换,不能用于值类型之间的转换。
  3. 如果被转换的对象为 null,那么无论目标类型是什么,as 关键字都会返回 null。
  4. 使用 as 关键字进行转换时,不会抛出异常。

is 关键字:

  1. is 关键字用于判断一个对象是否是指定类型的实例。
  2. is 关键字可以用于引用类型和值类型之间的判断。
  3. 如果对象是指定类型的实例,则返回 true ;否则返回 false 。
  4. 使用 is 关键字进行判断时,不会抛出异常。

下面是一些示例代码来说明 as 和 is 的使用:

cs 复制代码
// 使用as关键字进行类型转换
object obj = "Hello";
string str = obj as string;
if (str != null)
{
    Console.WriteLine("转换成功:" + str);
}
else
{
    Console.WriteLine("转换失败");
}

// 使用is关键字进行类型判断
object obj = "Hello";
if (obj is string)
{
    string str = (string)obj;
    Console.WriteLine("是字符串:" + str);
}
else
{
    Console.WriteLine("不是字符串");
}

注意,as 关键字在转换失败时会返回 null ,而 is 关键字只返回 true 或 false 。另外,使用 as 关键字进行转换时,需要注意目标类型是否兼容,否则会得到 null 值。

相关推荐
晨曦5432108 分钟前
针对经济学大数据的 Python 爬虫实践指南
开发语言·爬虫·python
上位机付工10 分钟前
C#上位机实现报警语音播报
开发语言·c#·上位机·plc·运动控制卡·语音播报·报警播报
千千道13 分钟前
QT 中使用 QSettings 读写 ini 配置文件
开发语言·qt
benben0441 小时前
Unity3D仿星露谷物语开发67之创建新的NPC
开发语言·游戏·ui·c#·游戏引擎
matdodo1 小时前
【大数据】java API 进行集群间distCP 报错unresolvedAddressException
java·大数据·开发语言
老一岁1 小时前
c++set和pair的使用
开发语言·c++
k***a4292 小时前
Python 中设置布尔值参数为 True 来启用验证
开发语言·windows·python
RPGMZ2 小时前
RPGMZ游戏引擎 如何手动控制文字显示速度
开发语言·javascript·游戏引擎·rpgmz
机器学习之心2 小时前
三种经典算法无人机三维路径规划对比(SMA、HHO、GWO三种算法),Matlab代码实现
开发语言·sma·hho·gwo·无人机三维路径规划对比
小码编匠2 小时前
面向工业应用的点云相机控制接口库(含C#调用示例)
后端·c#·.net