gpt4 book ai didi

c# - 将对象转换为值类型时解决 c# 拆箱异常的最佳方法是什么?

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

我刚刚将一个代码片段从 VB.NET 转换为 C#,然后偶然发现了这个问题。

考虑这段代码:

    Dim x As Integer = 5
Dim y As Object = x
Dim z As Decimal = CType(y, Decimal)

编译器或运行时没有错误。 z 是五。

现在让我们将这段代码翻译成 C#

    int x = 5;
object y = x;
decimal z = (decimal)y;

编译器没有错误,但在运行时抛出异常:

    Cannot unbox "y" to "decimal"

现在我的问题是,哪种 C# 方法最聪明。

目前我的代码看起来像。

    int x = 5;
object y = x;
decimal z = decimal.Parse(y.ToString());

但另一种解决方案是:

    decimal z = (decimal)(int)y;

这看起来有点困惑,但我猜可能比 decimal.Parse 的开销要少。

最佳答案

怎么样:

z = Convert.ToDecimal(y);

关于c# - 将对象转换为值类型时解决 c# 拆箱异常的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153612/

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