试图避免Tell-not-ask,我想在调用方法之前将我所要求的bool属性组合成一个返回bool的新方法.
我尝试遵循该模式,如果方法无法执行其名称所隐含的操作,则会抛出异常.例如,如果SendMail无法发送邮件,则会抛出异常.
我希望这个特殊的方法返回一个bool来表示成功.我正在考虑是否应该将名称更改为类似TrySendMail的东西,也许用bool返回类型查看方法签名应该足够了吗?
整个TryWhatever命名模式似乎是来自微软的一个相当新的事情,但行为(尝试做某事,如果失败则抛出,如果没有则返回有意义的强类型值)已经存在了很长时间.
理论上,如果方法采用接收结果的ref参数并返回bool,则应该使用TryWhatever.如果方法失败,则返回false.如果成功,则结果存储在ref参数中(始终是最后一个参数),并返回true.
您可以使用DateTime.TryParse方法作为示例.如果方法与该模式不匹配,则它不是此命名约定的候选者.
对我来说,使用这种约定时,一致性是关键.不要惊讶于开发人员.我们中的一些人是非常可怕的人!
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |