我知道 getInfo1 从下面的方法提供了更好的可读性。但是,与方法结束相比,在方法开始时,在方法开始时立即抛出例外的两个方法之间是否有其他区别(例如运行时间执行)?
?public string GetInfo1(string name) {
if(string.IsNullOrWhiteSpace(name))
throw new ArgumentException(nameof(name));
var info = GetInfoByName(name);
return info;
}
public string GetInfo2(string name) {
if(!string.IsNullOrWhiteSpace(name)) {
var info = GetInfoByName(name);
return info;
}
throw new ArgumentException(nameof(name));
}
我认为getInfo1方法更灵活,并提供了更好的可扩展性。您可以添加代码(更多如果语句),以验证更多案例而无需删除任何内容。
我的意思是一般。如果您只想检查空空间或白色空间,并且确定将来不会验证更多案例,那么这两种方法都很好。
另外,请记住,在特殊情况下应使用例外。用户忘记填写字段或错误地进入空白很常见。
在开始时抛弃意味着您在对其进行任何操作之前验证所有信息。这也意味着不需要运行的代码不需要。
,如果您在开始时检查所有内容,那么它比拥有大量if
语句检查值还可以更加整洁(当您最终可能会嵌套很多IF时,这特别有效)。
也值得注意的是,诸如Resmanper之类的事情建议您尽快退出方法。因此,就建议的最佳实践而言,GetInfo1
是推荐的方法。
所以,简而言之,因为:
- 它更可读
- 它遵循建议的最佳实践
- 如果整个方法中的语句 避免了很多不必要的
- 代码不需要运行。