如果有差异,那么执行以下转换的两种方法有什么区别?
在这种情况下e
is a GridViewRowEventArgs
object.
GridView gv = (GridView)e.Row.FindControl("gv"); //first way
GridView gv2 = e.Row.FindControl("gv") as GridView; //second way
差异是:
- 如果强制转换失败,则会抛出InvalidCastException.
- If the
as
运算符失败,它只返回一个空引用。
- 你不能使用
as
具有不可为 null 的值类型(例如,您不能执行“o as int
").
- 强制转换运算符也用于拆箱。 (
as
可用于取消装箱为可为空值类型。)
- 强制转换运算符还可以执行用户定义的转换。
编辑:我已经写在别处关于什么时候我觉得适合使用哪个运算符。这可能值得一读...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)