社区
C#
帖子详情
类型转换 (ClassName) 与 as ClassName 有什么不同,那个效率更高
yidichaxiang
2009-09-16 10:21:03
类型转换 (ClassName) 与 as ClassName 有什么不同,那个效率更高
如:
Hashtable tempHashTableA = (Hashtable)Application["valueList"];
Hashtable tempHashTableB = Application["valueList"] as Hashtable;
...全文
211
9
打赏
收藏
类型转换 (ClassName) 与 as ClassName 有什么不同,那个效率更高
类型转换 (ClassName) 与 as ClassName 有什么不同,那个效率更高 如: Hashtable tempHashTableA = (Hashtable)Application["valueList"]; Hashtable tempHashTableB = Application["valueList"] as Hashtable;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
danjiewu
2009-09-16
打赏
举报
回复
Hashtable tempHashTableB = Application["valueList"] as Hashtable;
等价于
Hashtable tempHashTableB = Application["valueList"] is Hashtable? (Hashtable)Application["valueList"] : null;
wuyq11
2009-09-16
打赏
举报
回复
强制转换运算符
类型转换失败会抛出异常InvalidCastException
只要类型转换成立,null值不会抛出异常
as类型转换运算符
永远不会抛出异常
输入null值或者转换失败都会返回null
当需要转换对象的类型属于转换目标类型或者转换目标类型的派生类型的时候,
那么此转换操作才能成功,而且并不产生新的对象。
因此用as来进行类型转换使安全的
还有typeof()等
阿非
2009-09-16
打赏
举报
回复
is 与 as 两个关键字都是 .net 2.0 里新增的
推荐使用 as 代替 强制类型转换,因为强转 如果类型不一致 会报错,
而 as 关键字则不会,会返回null,所以 as 关键字只能应用于 引用类型对象。
is 是判断左右两边的类型是否一致 与 as 在某些场景 会有交错,但 两者各有特点,不建议替换。
----------------------------------------
object o = GetFromCache("A_KEY");
EmployeeInfo employee = o as EmployeeInfo;
if(employee != null) {
// TODO: 代码
}
这个写法的意思是 不判断类型 直接强制转换 ,然后判断是否为null
如果 只是想知道是否是某种类型的话 ,使用is 要比 as 效率高
TTOJJ
2009-09-16
打赏
举报
回复
Microsoft Visual C++.NET技术内幕(第6版)中明确说到"尽量使用as而不是强制转换"
fengjian_428
2009-09-16
打赏
举报
回复
[Quote=引用 4 楼 yidichaxiang 的回复:]
注: Application["valueList"] 传入时,就是hashtable,
所以 我在 .net 2.0 中 还未遇到报错。
在【PK贴】大家晒下C#开发代码的小技巧啊!
http://topic.csdn.net/u/20090804/16/3f463808-00ff-479b-b07d-20751534e77c.html?56933
中看到
1. 使用as,而非is
object o = GetFromCache("A_KEY");
EmployeeInfo employee = o as EmployeeInfo;
if(employee != null) {
// TODO: 代码
}
所以 is 的判断 ,价值大吗?
[/Quote]
如果不需要转型 只是想判断类型就用is咯
yidichaxiang
2009-09-16
打赏
举报
回复
注: Application["valueList"] 传入时,就是hashtable,
所以 我在 .net 2.0 中 还未遇到报错。
在【PK贴】大家晒下C#开发代码的小技巧啊!
http://topic.csdn.net/u/20090804/16/3f463808-00ff-479b-b07d-20751534e77c.html?56933
中看到
1. 使用as,而非is
object o = GetFromCache("A_KEY");
EmployeeInfo employee = o as EmployeeInfo;
if(employee != null) {
// TODO: 代码
}
所以 is 的判断 ,价值大吗?
ztenv
2009-09-16
打赏
举报
回复
一个调用()一个调用as,没有什么区别,在调用之前最好用is先判断一下
fengjian_428
2009-09-16
打赏
举报
回复
http://msdn.microsoft.com/zh-cn/library/cc488006.aspx
as要好些
wdzr_826
2009-09-16
打赏
举报
回复
Hashtable tempHashTableA = (Hashtable)Application["valueList"];
这个会报错
Hashtable tempHashTableB = Application["valueList"] as Hashtable;
不会报错
第二个要优于第一个,更安全,更有效率
【Python编程】Python数据类data
class
与attrs库对比
内容概要:本文深入对比Python数据类声明的两种主流方案,重点分析data
class
es模块(PEP 557)与attrs第三方库在功能覆盖、性能开销、扩展生态上的差异。文章从样板代码(boilerplate)消除出发,详解@data
class
装饰器的frozen/unsafe_hash/order/slot参数语义、field()函数的默认值工厂与元数据配置、以及__post_init__的初始化后处理钩子。通过代码示例展示attrs的validators验证器、converters
类型转换
器、以及auto_attribs的PEP 526注解兼容模式,同时介绍cattrs的序列化/反序列化适配、Pydantic的BaseModel运行时校验增强、以及marshmallow的Schema显式定义,最后给出在配置对象、DTO传输、领域模型等场景下的数据类选型建议与版本兼容性策略。 24直播网:m.nanjingdl.com 直播下载:powermaya.com 直播下载:m.mountkong.com 直播下载:ronghong88.com 24直播网:m.lgkjw.com
建筑材料聚合物改性砂浆技术规范:混凝土结构加固用高性能水泥基复合材料性能与施工标准
内容概要:PMSC-P2聚合物砂浆是一种用于混凝土结构加固的高强度水泥砂浆,由聚合物、水泥、细骨料、掺合料及添加剂等按比例混合而成。产品具有高抗压强度、快速固化、优良粘接性、保水性和抗裂性,同时具备耐碱、耐紫外线等特点,且施工便捷、环保健康。适用于工业、市政、桥梁、建筑等多个领域的混凝土结构修缮与加固工程。文章详细介绍了其性能指标(符合JG/T 289-2010 II级标准)、基层处理要求、材料配制方法、分层施工工艺及养护措施,并强调了施工环境控制、安全防护和严禁添加外加物等注意事项,确保工程质量与安全性。; 适合人群:从事土木工程、结构加固、建筑材料施工与管理的技术人员及施工人员;; 使用场景及目标:①应用于桥梁、建筑、化工厂等混凝土结构破损修复与承载力提升;②解决传统砂浆粘结差、易开裂等问题,实现高效、耐久的结构补强;③指导现场科学施工,确保材料性能充分发挥; 阅读建议:此文档兼具技术说明与施工指导功能,使用者应结合工程实际,严格按照配比、工艺流程和环境条件操作,特别注意界面处理、分层施工时机与养护措施,以保障施工质量与结构安全。
围绕线程池隔离方案搭建Java服务治理闭环
标题:围绕线程池隔离方案搭建Java服务治理闭环 内容概要:聚焦性能优化、权限隔离、数据一致性与监控告警,讲解围绕线程池隔离方案搭建Java服务治理闭环的设计思路。 24直播网:shiyusai.yhxingyuan.com 24直播网:www.gov.yglcjls.info 直播下载:yiass.com 24直播网:usxo.yhcgd.com 直播下载:footballhd.yifengdiaozhuang.com
易语言源码蜘蛛牌(易语言2006年大赛三等奖)
易语言源码蜘蛛牌(易语言2006年大赛三等奖)
建筑材料水泥基灌浆料CGM-260技术规范:设备安装与结构加固用高性能无收缩灌浆材料
内容概要:本文介绍了CGM-260灌浆料的产品特性、适用范围、性能指标、施工工艺、注意事项及贮存条件。该材料是一种水泥基灌浆材料,具有大流态、不泌水、微膨胀、早期强度高、施工便捷等特点,适用于地脚螺栓锚固、设备基础灌浆、结构加固等多种工程场景。其性能符合JC/T 986-2018和GB/T 50448-2015相关标准,具备良好的抗压强度和竖向膨胀率。文章详细说明了从施工准备、搅拌、灌注到养护的完整施工流程,并强调了施工环境、用水量控制、温度管理等关键因素,确保工程质量。; 适合人群:从事土木工程、设备安装、结构加固及相关施工管理的技术人员与施工人员;材料采购与工程监理等相关从业人员。; 使用场景及目标:①用于工业与民用建筑中的设备基础灌浆、钢结构柱脚固定、混凝土结构改造加固;②指导现场科学施工,确保灌浆质量,提升工程耐久性与安全性;③帮助用户正确存储与使用材料,避免因误操作影响性能。; 阅读建议:本文兼具产品说明与技术指导功能,使用者应重点掌握施工工艺要点与环境限制条件,尤其注意冬期施工、高温防护及禁止添加外加物等规定,以保障材料性能充分发挥。
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章