Tim*_*Tim 7 c# fxcop coding-style
我想知道 在使用FxCop时人们对CA1806(DoNotIgnoreMethodResults)静态代码分析警告的看法.
我有几种情况,我使用Int32.TryParse来提取保存在文件中的内部配置信息.我最终得到了很多看起来像的代码:
Int32.TryParse(someString, NumberStyles.Integer, CultureInfo.InvariantCulture, out intResult);
Run Code Online (Sandbox Code Playgroud)
MSDN说如果出现故障,intResult的默认结果为零,这正是我想要的.
不幸的是,此代码将在执行静态代码分析时触发CA1806.似乎有很多冗余/无用的代码来修复错误,如下所示:
bool success = Int32.TryParse(someString, NumberStyles.Integer, CultureInfo.InvariantCulture, out intResult);
if (!success)
{
intResult= 0;
}
Run Code Online (Sandbox Code Playgroud)
我应该抑制此消息或咬住子弹并添加所有这些冗余错误检查?或者也许某人对处理这样的案件有更好的想法?
谢谢!
为什么不用TryParse你所追求的行为将你的s 重构为一个函数?:
static int ParseOrDefault(string someStr)
{
int result = 0;
if(int.TryParse(someStr, out result))
{
return result;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这样你就可以避免烦人的警告并抛弃冗余代码.一个单独的功能可以使您的期望明确,不会产生混淆的余地.