当TryXxxx方法返回false时,out参数的标准行为是什么?

Mat*_*cey 5 c# standards exception conventions

假设具有以下签名的方法

bool TryXxxx(object something, out int toReturn)
Run Code Online (Sandbox Code Playgroud)

toReturn如果TryXxxx返回false,它可以接受什么?

在这种情况下,toReturn如果TryXxxx失败,它永远不应该被使用吗?

如果toReturn是一个nulable类型,那么返回null是有意义的.但是int不可空,我不想强​​迫它.

如果失败时toReturn总是某个值,那么TryXxxx我们就有可能认为2个值可以表示相同的位置.如果将'default'值作为有效响应TryXxxx返回(返回true时),我可以看到这可能导致混淆.

从实现点来看,如果看起来像toReturn[ny]值是最简单的,但有什么更重要的考虑吗?

Jon*_*eet 6

我会明确地将其记录为使用类型的默认值(无论该类型是什么;在这种情况下为0,但default(T)在更一般的情况下).在不同情况下,如果值不存在,则默认值正是您想要的 - 在这种情况下,您可以忽略方法的返回值.

请注意,这就是方法int.TryParseDictionary.TryGetValue做法.