在int.TryParse之前的Nullcheck

Tos*_*shi 0 c# int

我有代码,许多字符串被解析为整数值.

string item = null; //or a value
int result;
if (!string.IsNullOrEmpty(item) && int.TryParse(item, out result))
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

是否真的需要IsNullOrEmpty每次检查?如果是null或为空,则解析应该失败.

Tim*_*ter 8

不,String.IsNullOrEmpty这里是多余的,因为Int32.TryParse通过返回来处理这种情况false.所以这更简洁:

int result;
if (int.TryParse(item, out result))
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

MSDN:

所述如果s参数为空值或的String.Empty转换失败,不是正确格式的,或者代表比MINVALUE大于MaxValue的更少或更大的数.