当前位置: 首页 > news >正文

C# 转换(is和as运算符)

is运算符

之前已经说过了,有些转换是不成功的,并且会在运行时抛出InvalidCastException异常。
我们可以使用is运算符来检查转换是否会成功完成,从而避免盲目尝试转换。
is运算符的语法如下,其中Expr是源表达式:

image
如果Expr可以通过以下方式成功转换为目标类型,则运算符返回true:

  • 引用转换,
  • 装箱转换
  • 拆箱转换
    例如,在如下代码中,使用is运算符来检测Employee类的变量bill是否能转换为Person
    类型,然后进行合适的操作。
class Employee:Person{}class Person
{public string Name="Anonymous";public int Age=25;
}class Program
{static void Main(){Employee bill=new Employee();//检测变量bill是否能转换为Person类型if(bill is Person){Person p=bill;Console.WriteLine($"Person Info:{p.Name},{p.Age}")}}
}

is运算符只可以用于引用转换以及装箱和拆箱转换,不能用于用户自定义转换。

as运算符

as运算符和强制转换运算符类似,只是它不抛出异常。如果转换失败,它返回null而不是
抛出异常。
as运算符的语法如下,其中:

  • Expr是源表达式;
  • TargetType是目标类型,它必须是引用类型。

image
由于as运算符返回引用表达式,它可以用作赋值操作中的源。例如,我们使用as把Employee
类型的变量bill转换为Person类型,并且赋值给一个Person类型的变量P。在使用它之前应该
检查p是否为null。

class Employee:Person{}class Person
{public string Name="Anonymous";public int Age=25;
}class Program
{static void Main(){Employee bill=new Employee();Person p;p=bill as Person;if(p!=null){Console.WriteLine($"Person Info:{p.Name},{p.Age}");}}
}

和is运算符类似,as运算符只能用于引用转换和装箱转换,不能用于用户自定义转换或到
值类型的转换。

http://www.lryc.cn/news/595566.html

相关文章:

  • XSS学习总结
  • Unreal ARPG笔记
  • 《画布角色的双重灵魂:解析Canvas小游戏中动画与碰撞的共生逻辑》
  • Spring Boot注解详解
  • 影刀 RPA:批量修改 Word 文档格式,高效便捷省时省力
  • 通俗易懂卷积神经网络(CNN)指南
  • 海康威视视觉算法岗位30问及详解
  • 多片RFSoC同步,64T 64R
  • STM32小实验四--按键控制LED灯
  • Neo4j 5.x版本的导出与导入数据库
  • 车载软件架构 --- 软件开发面临的问题
  • DAY17 常见聚类算法
  • Spring AI 集成阿里云百炼与 RAG 知识库,实现专属智能助手(框架思路)
  • SpringSecurity 详细介绍(认证和授权)
  • 广东省省考备考(第五十二天7.21)——数量、判断推理(听课后强化训练)
  • 【qml-3】qml与c++交互第二次尝试(类型方式)
  • Android MTK平台预置多张静态壁纸
  • LinkedList与链表(单向)(Java实现)
  • 跨端分栏布局:从手机到Pad的优雅切换
  • 遗像照片尺寸要求及手机制作打印方法
  • DIDCTF-2021第三届长安杯(检材一)
  • LeetCode 每日一题 2025/7/14-2025/7/20
  • Android Studio 的 Gradle 究竟是什么?
  • 力扣刷题 -- 100.相同的树
  • 4.Java创建对象有几种方式?
  • repmgr+pgbouncer实现对业务透明的高可用切换
  • ANSYS 2025 R1软件下载及安装教程|附安装文件
  • 【实战】Dify从0到100进阶--文档解读(10)参数提取HTTP节点
  • 2025年一区SCI-回旋镖气动椭圆优化算法Boomerang Aerodynamic Ellipse-附Matlab免费代码
  • IFN影视官网入口 - 4K影视在线看网站|网页|打不开|下载