gpt4 book ai didi

c# - 将字符串解析为可为空的数字类型(1 或 2 行)

转载 作者:IT王子 更新时间:2023-10-29 04:45:46 24 4
gpt4 key购买 nike

场景

将字符串解析为可为空的数字类型。如果解析不成功,结果应该是null;否则结果应该是解析后的值。

问题

为此,我一直使用以下简单但冗长烦人的方法:

string numericString = "...";

decimal? numericValue;
decimal temp;
if (decimal.TryParse(numericString, out temp))
{
numericValue = temp;
}
else
{
numericValue = null;
}

我使用上述方法是因为以下内容无法编译:

decimal temp;
decimal? numericValue = decimal.TryParse(numericString, out temp) ? temp : null;

有谁知道第一部分代码的版本与第二部分代码一样简短、整洁和可读?我知道我总是可以编写一个扩展方法来封装第一部分代码,但我想知道是否有任何方法可以在没有扩展方法的情况下做我想做的事情。

最佳答案

一个简单的显式类型转换使其可编译:

decimal temp;
// typecast either 'temp' or 'null'
decimal? numericValue =
decimal.TryParse(numericString, out temp) ? temp : (decimal?)null;

另一种选择是对所需的可空类型使用 default 运算符:

decimal temp;
// replace null with default
decimal? numericValue =
decimal.TryParse(numericString, out temp) ? temp : default(decimal?);

关于c# - 将字符串解析为可为空的数字类型(1 或 2 行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12682025/

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