C#中的is、as及转换

本文详细介绍了C#中的类型转换规则,包括隐式转换、显式转换、使用Convert类及Parse方法进行转换的方法。此外还深入探讨了is和as运算符在类型检查中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转换

1.任何类型都可以转换为其基类类型,用隐式转换完成;

2.任何类型转换为其派生类型时,必须进行显示转换。采用
(类型名)对象名完成;

3.基本类型可以使用Convert类实现类型转换;

4.除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;

在系统中:
- 使用GetType可以取得任何对象的精确类型;
- 值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);

C# 的is和as

is

is 关键字用于检查对象是否与给定类型兼容。注意了,这里的
is并不是“是”的意思,而是“兼容”。
也就是说,如果被检查对象能够强制转换成给定类型并不发生异常,那么表示它们类型兼容。

is 检查规则:

1.检查对象类型的兼容性,并返回结果true(false);

2.不会抛出异常;

3.如果对象为null,返回false

示例:

object o = "string";     
if (o is string) //执行第一次类型兼容性检查
{     
    string s = (string)o; //执行第二次类型兼容性检查,并转换
    Console.WriteLine("success!");     

}    
else   
{   
     Console.WriteLine("转换失败!");     
}   

注意:is运算符只考虑引用转换、装箱转换和 拆箱转换。不考虑其他转换,如用户定义的转换。
特别注意:虽然int和long、double是类型兼容的,但是使用is运算符的结果却是false,那是因为is运算符只考虑引用转换、装箱转换和拆箱转换。
在is运算符的左侧不允许使用匿名方法。

as 转换

as 转换规则

1.检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;作为对比,如果类型不兼容,则强制转换会抛出异常。

2.不会抛出异常;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值