我最近一直在考虑从方法中返回的东西,我注意到当方法失败时我会返回4种不同的东西.
困扰我的是,我的代码在这方面不是很有用,所以我想询问你的"最佳实践".
因此,让我们设想一个采用Foo并返回Bar列表的方法:
public IList<Bar> Method(Foo something);
Run Code Online (Sandbox Code Playgroud)
或者保持更一般:
public IBar Method(IFoo something);
Run Code Online (Sandbox Code Playgroud)
问题是你在什么样的失败中返回什么.选项将是:
我真的很讨厌选项4,所以我大部分都倾向于听你何时使用其他3个选项以及为什么
这取决于你所说的“失败”是什么意思。
如果发生了意外事件,那么我会抛出异常。当参数不正确时可能会出现参数异常,当您无法从文件中读取时可能会出现 IOException 等等。
如果“失败”是找不到给定参数值的项目,那么我将返回一个空列表。如果您返回一个不是集合的对象,我将返回 null。
我从不返回特殊的结果代码,例如错误时返回-1。我真的不喜欢它。人们往往会忘记代码,它们会随着时间的推移而改变,最终会得到难以维护的 if 语句来检查这些结果代码,等等。
| 归档时间: |
|
| 查看次数: |
1304 次 |
| 最近记录: |