欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » C# » 正文

热门阅读

C#中is与as的区别

创建时间:2011年12月28日 22:52  阅读次数:(7262)
分享到:
在C#中,is是用来判断类型A能否转化为类型B,一般用来作有继承关系的父类与子类是否可以相互转化的判断。
而as是将类型A转化为类型B,一般也是用来做子类与父类的转换。

如下面的例子,我们声明三个类
class A
{ }

class B : A
{ }

class C
{ }

可以看到,类B是由类A继承来的。而C是一个独立的类。下面我们利用is与as来做测试。
class Program
{
public static void Main()
{
B b = new B();      
if (b is A)
{
Console.WriteLine(true);
}
else
{
Console.WriteLine(false);
}
}
}

打印的结果为true,说明b类可以转换为A类,但b类并没有转化为A类。

再看下面的例子:
class Program
{
public static void Main()
{
B b = new B();
A a = b as A;
if (a != null)
{
Console.WriteLine(true);
}
else
{
Console.WriteLine(false);
}
}
}

打印结果为true,这也说明b类可以转换为A类,而且已经将类b转化为了A类型。

注意:既使b类不可以转换为A类,使用is做判断的时候,是可以通过编译的,也不会抛出异常,只是会给出提示。而使用as是会报错的,即通不过编译。{|媁:
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论1条
  • #1楼  评论人:匿名  评论时间:2017-3-22 15:47:07
  • 注意:既使b类不可以转换为A类,使用is做判断的时候,是可以通过编译的,也不会抛出异常,只是会给出提示。而使用as是会报错的,即通不过编译。

    这段话里面的is和As写反了吧!
发表评论:
留言人:
内  容:
请输入问题 33+10=? 的结果(结果是:43)
结  果: