我有一个包含以下代码的库:
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;
Run Code Online (Sandbox Code Playgroud)
在我的Visual Studio 2015本地副本中,编译很好.上周构建服务器也会让这个编译没有问题.突然,周一构建服务器开始出错:
QueryParser.cs(449,53):错误CS1620:必须使用'ref'关键字[$ projectPath\Core40.csproj]传递参数2
当我进行切换(使用ref而不是out)时,构建服务器能够完成构建而不会出错,但Visual Studio将不再编译.
从我的相关文件的阅读,double.TryParse也一直采取了out关键字,所以必须有关于构建服务器的库的东西了,但我不知道什么或如何去诊断它.
经过下面的一些问题,我又回到了班级,并确认有多个实例decimal.TryParse(value, out result),int.TryParse(value, out result),float.TryParse(value, out result),long.TryParse(value, out result),和Guid.TryParse(value, out result).我也能用"浮动"替换"双",它工作得很好.这是特定的东西double.
显然,构建命令是:
msbuild /m /p:Configuration=Release /p:Platform="Any CPU" $path\$solution.sln
Run Code Online (Sandbox Code Playgroud)
此外,我可以TryParse用一个try { return double.Parse(value); } catch (Exception) { return DEFAUlT; }块替换(我的临时前进方式),但这实际上并没有解决问题.
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |