![]() |
1
32
就我个人而言,我更喜欢最后一个选项(尽管使用
NET4中的另一个选项是
它明确地说,“这个方法返回两件事。。。我已经为您打包了这个特殊的案例,但不值得进一步封装它们:它们不值得用单独的类型来编写”。
(如果您不使用.NET4,您可以自己编写
|
![]() |
2
9
我更愿意将其包装在一个return对象中:
|
![]() |
3
4
我更喜欢最后的选择。Out参数很少使用,有些人可能会感到惊讶/困惑。创建复合结果对象是一个干净的解决方案。唯一的缺点是必须为此目的创建一个类。 |
![]() |
4
3
我要说第三个,因为它将您需要的逻辑封装在一个位置。我只能假设SftpResult和ArrayList返回方法应该是私有的,然后构成复合返回对象的内部逻辑。 |
![]() |
5
2
我会做到:
因此,对于函数的作用没有任何混淆,如果GetFileList失败,我也会返回bool。 |
![]() |
6
2
如果你喜欢一个函数做两件事的设计,那么我会使用元组lajon或者返回对象lafredrik。 如果你想对它保持乐观,你可以让类型系统来完成这项工作:
|
![]() |
7
1
为什么不提供这三个呢?我不喜欢在我的函数调用中使用out参数,但我可以理解在很多时候它们是需要的。如果您不知道要支持哪个签名,那么请支持所有三个签名。最终,选择权在打电话者一边,你能做的最好的事情就是提供这个选择。 |