假设一个具有以下签名的方法
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.TryParse
和Dictionary.TryGetValue
这样的方法。