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 值。

相关推荐
小龙报14 分钟前
《算法通关指南数据结构和算法篇(4)--- 队列和queue》
c语言·开发语言·数据结构·c++·创业创新·学习方法·visual studio
民乐团扒谱机22 分钟前
深入浅出理解克尔效应(Kerr Effect)及 MATLAB 仿真实现
开发语言·matlab·光学·非线性光学·克尔效应·kerr effect
7澄128 分钟前
深入解析 LeetCode 数组经典问题:删除每行中的最大值与找出峰值
java·开发语言·算法·leetcode·intellij idea
计算衎31 分钟前
.c .o .a .elf .a2l hex map 这些后缀文件的互相之间的联系和作用
开发语言·elf·gcc·c/c++·a2l
ysyxg33 分钟前
设计模式-策略模式
java·开发语言
m0_748248021 小时前
C++与C#布尔类型深度解析:从语言设计到跨平台互操作
c++·stm32·c#
一抓掉一大把1 小时前
秒杀-StackExchangeRedisHelper连接单例
java·开发语言·jvm
星释1 小时前
Rust 练习册 :Minesweeper与二维数组处理
开发语言·后端·rust
开发者小天2 小时前
React中的useRef的用法
开发语言·前端·javascript·react.js
LeonDL1682 小时前
【通用视觉框架】基于C#+VisionPro开发的视觉框架软件,全套源码,开箱即用
人工智能·c#·visionpro·通用视觉框架·机器视觉框架·视觉框架软件·机器视觉软件