gpt4 book ai didi

c# - 获取 Double.TryParse 中所需的 "ref"关键字

转载 作者:太空狗 更新时间:2023-10-29 21:56:45 25 4
gpt4 key购买 nike

我有一个包含以下代码的库:

double result = -1;

if (!string.IsNullOrEmpty(fieldName))
{
string value = HttpContext.Current.Request.QueryString[fieldName];
if (string.IsNullOrEmpty(value))
{
value = HttpContext.Current.Request.Form[fieldName];
}

if (string.IsNullOrWhiteSpace(value) || !double.TryParse(value.Trim(), out result))
{
result = -1;
}
}

return result;

在我的 Visual Studio 2015 本地副本中,此编译正常。上周构建服务器也可以毫无问题地进行编译。突然,周一构建服务器开始出现错误:

QueryParser.cs(449,53): error CS1620: Argument 2 must be passed with the 'ref' keyword [$projectPath\Core40.csproj]

当我进行该切换时(使用 ref 而不是 out),构建服务器能够无错误地完成构建,但 Visual Studio 将不再编译。

根据我对相关文档的阅读,double.TryParse always 使用了 out 关键字,所以一定有问题构建服务器的库,但我不确定如何诊断它。


经过下面的一些问题,我回到类里面,确认有多个实例 decimal.TryParse(value, out result), int.TryParse(value,输出结果), float.TryParse(value, out result), long.TryParse(value, out result), and Guid.TryParse(值,输出结果)。我还能够用“float”替换“double”,而且效果很好。这是 double 特有的内容。


显然,构建命令是:

msbuild  /m /p:Configuration=Release /p:Platform="Any CPU" $path\$solution.sln

此外,我可以将 TryParse 替换为 try { return double.Parse(value); } catch (Exception) { 返回默认值; } block (我的临时前进方向),但这并不能真正解决问题。

最佳答案

事实证明这是某种类型的错误缓存问题。最终,DevOps 重新启动了构建机器,问题就消失了。我很想知道真正的根本原因,但解决方案仍然是“关闭并再次打开”。

关于c# - 获取 Double.TryParse 中所需的 "ref"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39177034/

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