博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
is和as
阅读量:5013 次
发布时间:2019-06-12

本文共 698 字,大约阅读时间需要 2 分钟。

C#中is与as的区别

在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是会报错的,即通不过编译

转载于:https://www.cnblogs.com/bb-love-dd/p/6011201.html

你可能感兴趣的文章
linux shell 发送email 附件
查看>>
人群密度估计 CrowdCount
查看>>
JSON.parse()和JSON.stringify()
查看>>
.net 常用正则表达式
查看>>
Java泛型中的标记符含义:
查看>>
初遇GitHub
查看>>
[C# 网络编程系列]专题八:P2P编程
查看>>
Jsの练习-数组常用方法 -forEach()
查看>>
动态绑定treeview的方法
查看>>
jvm参数
查看>>
3-1 案例环境初始化
查看>>
读《构建之法》第四章和十七章有感
查看>>
01背包
查看>>
开发一个12306网站要多少钱?技术分析12306合格还是不合格
查看>>
Selenium 入门到精通系列:六
查看>>
android 实现2张图片层叠效果
查看>>
我个人所有的独立博客wordpress都被挂马
查看>>
html5——动画案例(时钟)
查看>>
调用Android系统“应用程序信息(Application Info)”界面
查看>>
ios中用drawRect方法绘图的时候设置颜色
查看>>