假设一个具有以下签名的方法

bool TryXxxx(object something, out int toReturn)

如果toReturn返回false,TryXxxx可以是什么?
由此推断,如果toReturn失败,就不应该使用TryXxxx这有关系吗?
如果toReturn是nulable类型,那么返回null是有意义的。但是int不能为空,我不想强迫它为空。
如果toReturn始终是某个值,如果TryXxxx失败,我们就有可能出现两个值可以被视为指示同一事物的位置。如果“default”值作为有效响应返回(当TryXxxx返回true时),我可以看到这会导致潜在的混淆。
从实现的角度来看,toReturn成为一个[ny]值似乎是最简单的,但是还有什么更重要的事情要考虑吗?

最佳答案

我将显式地将其记录为使用类型的默认值(无论该类型是什么;在本例中为0,但在更一般的情况下为default(T))。在很多情况下,如果值不存在,那么默认值就是您想要的值,在这种情况下,您可以忽略方法的返回值。
注意,这就是int.TryParseDictionary.TryGetValue这样的方法。

07-26 08:07