我读《Microsoft .NET框架程序设计(修订版)》------DoItNow的读书笔记3
我读《Microsoft .NET框架程序设计(修订版)》------解然的读书笔记3
关于类型转换中的 is和as的使用
is作为运算符出现在类型转换中的.其作用是检查对象的运行时类型是否与给定类型兼容,在这种类型兼容性判定中要进行一次类型转换. 然后根据类型的兼容性进行其他处理工作.
AS 也是一个运算符, 对某个对象进行 as操作后 分为两种情况 1.如果类型兼容 操作成功 就会返回 as后的新类型 2.如果操作失败就会返回null.
这样就可以看出两操作符的 性能比较了.比如我原来 使用FindControl()方法 根据一个 变量名称的string 去获取这个变量时 是这么写的:
if(this.FindControl("myCheck") is System.CheckBox) //M处
{
System.CheckBox tempCheck= (System.CheckBox)this.FindControl("myCheck");//N处
tempCheck.Checked= true;
}
很明显以上操作在M和N处分别进行了 两次类型转换.
如果现在改成这么写
System.CheckBox tempCheck= this.FindControl("myCheck") as System.CheckBox;//L处
if(tempCheck!=null
{
tempCheck.Checked= true;
}
现在就只是在L处 进行了一次类型转换.
类型转换在CLR中,是比较消耗性能的, 现在大家应该知道怎么办了吧.(至少我以后不会用第一中方法了)
浙公网安备 33010602011771号