您好我在实用程序代码文件中找到了此函数:
版本1:
public static bool IsValidLong(string strLong)
{
bool result = true;
try
{
long tmp = long.Parse(strLong);
}
catch (Exception ex)
{
result = false;
}
return result;
}
我想用以下内容替换它(和其他类型的验证器):
版本2:
public static bool IsValidLong(string strLong)
{
long l;
return long.TryParse(strLong, out l);
}
哪个版本更好,为什么?
答案 0 :(得分:3)
第一个存在是因为第二个没有在某一点(Int64.TryParse()
被添加到.Net 2.0中)...使用第二个版本,为什么不利用框架在新版本中添加的功能如果它们可供你使用? :)
第二个更清晰,更精简,更可维护......我说这是一个更好的方法......以前没有。
另外,我相信TryParse()
实际上并没有在内部抛出任何异常,因此在成功解析时会更慢,但比在解析失败的情况下抛出异常要快得多/便宜。 / p>
答案 1 :(得分:1)
我更喜欢第二个,因为它们都是相同的,第二个是较少的代码。
答案 2 :(得分:1)
在第二个版本中,FW为您封装了第一个版本中的行为。我会说这两个例子是等价的,但我会说第二个例子中的代码更清晰。
答案 3 :(得分:0)
版本2更好,在try / catch块中包装代码会影响性能,我认为TryParse()实现不会使用这种方法。