gpt4 book ai didi

c# - 在 C# 中转换和使用 "as"有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:52 25 4
gpt4 key购买 nike

如果有区别的话,下面这两种做cast的方式有什么区别?

在这种情况下,e 是一个 GridViewRowEventArgs 对象。

GridView gv = (GridView)e.Row.FindControl("gv"); //first way

GridView gv2 = e.Row.FindControl("gv") as GridView; //second way

最佳答案

区别是:

  • 如果转换失败,它会抛出一个 InvalidCastException .
  • 如果 as 运算符失败,它只会返回空引用。
  • 您不能将 as 用于非空值类型(例如,您不能使用“o as int”)。
  • cast 运算符也用于拆箱。 (as 可用于拆箱为可为 null 的值类型。)
  • cast 运算符还可以执行用户定义的转换。

编辑:我有 written elsewhere关于什么时候我觉得适合使用哪个运算符。这可能值得一读......

关于c# - 在 C# 中转换和使用 "as"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25885588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com