gpt4 book ai didi

c# - 转换 - C# 中的 "(myObject)something"和 "something As myObject"有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 23:57:00 24 4
gpt4 key购买 nike

我已经遇到过几次并且感到困惑。

Cat c = new Cat("Fluffy");
return (Animal)c;

Cat c = new Cat("Fluffy");
return c as Animal;

这两种语法存在的原因是什么?

最佳答案

as 运算符是一个安全的转换。如果类型不兼容,as 将返回 null

另一方面,显式转换 (Animal)c 将抛出一个 InvalidCastException 如果类型不兼容赋值。

还值得注意的是,as 仅适用于继承 关系,而显式转换运算符将适用于值类型...

decimal d = 4.0m;
int i = (int)d;

...和任何其他explicit conversion operators使用 public static explicit operator 在类型上定义。这些不适用于 as

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

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