C#中as关键字的作用?

 我来答
zhouxiang_1216
推荐于2018-05-09 · TA获得超过2591个赞
知道大有可为答主
回答量:1286
采纳率:33%
帮助的人:1369万
展开全部
  定义:可以使用 as 运算符执行转换的某些类型在兼容之间的引用类型或可以为 null 的类型。

  备注:as 运算符类似于强制转换操作。 但是,如果转换是不可能的,as 返回 null 而不引发异常。请注意 as 运算符执行只引用转换、nullable 转换和装箱转换。 as 运算符不能执行其他转换,如用户定义的转换,应是通过使用转换的表达式。

  expression as type

  expression is type ? (type)expression : (type)null

  这两个表达式是等效的,但 expression 变量只计算一次。

  示例:
  Object myObject = new Object(); //创建一个object对象

  ClassA a = myObject as ClassA; //将它转换为ClassA类型,此操作会失败,但不会抛异常,a会被设置为null

  a.ToString(); //访问a会抛出一个System.NullReferenceException异常

  as 的工作方式和强制类转换一样,但是它永远不会抛出一个异常,如果指定的操作不能正确地进行转换,那么得到的就是null,实际应用中通常会判断结果是否为 null;
百度网友0ed5f38
2012-12-20 · TA获得超过195个赞
知道答主
回答量:63
采纳率:0%
帮助的人:29.5万
展开全部
实例化的时候父类向子类转换或者子类向父类强制转换的时候会用到,还可以在互操作时候强转c++的指针类型。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a643b5121
2012-12-20
知道答主
回答量:36
采纳率:0%
帮助的人:18.5万
展开全部
个人认为和强制转换差不多,虽然不是,但是可以那么理解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
beierte
2012-12-20 · TA获得超过147个赞
知道答主
回答量:262
采纳率:0%
帮助的人:82.9万
展开全部
用于执行可兼容类型之间的转换。
当转换失败时,as 运算符将产生空,而不引发异常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式