永发信息网

C#中的对象类型转换

答案:5  悬赏:80  手机版
解决时间 2021-03-31 03:25
C#中的对象类型转换
最佳答案
关于类型的判断和转换有is和as这2个操作符。具体区别和用法如下
is就是处于对类型的判断。返回true和false。如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false。另外is操作符永远不会抛出异常。代码如下:

System.Boolean b1 = (o is System.Object);//b1 为true
System.Boolean b2 = (o is Employee);//b2为false如果对象引用为null,那么is操作符总是返回为false,因为没有对象可以检查其类型,就像下面代码一样
if(o is Employee) {
Employee e = (Employee) o;
//在if语句中使用e
}在上面代码中,其实clr对对象类型检查了两次:is操作首先检查o所引用的对象是否和employee类型兼容。如果兼容,那么在if语句内clr在执行转换时又会检查o是否为一个Employee引用。这种编程范式十分常见,c#便提供了一种新的类型检查,转换方式。即as操作符,他可以在简化代码的同时,提高性能。代码如下:
Employee e = o as Employee;
if(e != null)
{
//在if语句中使用e
}这种as操作即便等同于上面代码,同时只进行了1次的类型检查,所以提高了性能。如果类型相同就返回一个非空的引用,否则就返回一个空引用。
全部回答
as is class a as class b 强制转换 不能就为空
C#里有个is操作符,与as是对应的
if aObject is AClass Then aObject as AClass(Right)
else (aObject as AClass)=null
class A
{
protected int i;
}
class B
{

public void Print()
{
Console.WriteLine("");
}
}
static void Main()
{
A a = new A();
B b=a as B;
}
用as是不会转换失败的 因为他不是强制转换 你用(string)这种方式 就是强制转换 这样转换失败才会产生异常
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
环湖赛读后感400字作文
如何在铝板中进行拉丝工艺
1.25克头孢需要0.5克怎么算?
脚冻了怎么办
请问在租房这开设业余辅导班仅6个月需要办理
新宁县邵阳皇家布艺怎么去啊,谁知道地址啊
我很想多学的知识,但自己总是懒得学,有没有
智力测验中解释测验结果的依据是 A.信度 B.
1414年的东宫迎驾事件是什么
请问数学: 0.5x=2y 像这题目怎么计算呢?是
吸尘器打扫墙壁和天花板的时候用什么刷子?地
请问松下TH43D580C这电视现在的具体价格,质
离婚了,前妻已经跟人同居了,为什么还要上我
金庸群侠传无量山要如何打
重庆双黑,有按揭住房还可以办什么贷款。。。
推荐资讯
科学小子我爱老妈歌词
教科院附中地址有知道的么?有点事想过去!
12kw的蒸饭箱的电源线要几平方线?
绸面,尼龙,涤纶三者面料有什么区别吗
尿酸高尿液气味是怎样的
名侦探柯南OVA版什么时候更新
长16米宽10米设计图纸
已知2Na+2H2O═2NaOH+H2,把9.2g金属Na投入
初中考高中的机会只有几次
车子上什么地方会产生60A以上电流?
有谁像安利.莎莉文老师一样为别人带来了爱与
赠送礼品u盘一般有什么讲究,我是送给大客户
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?