gpt4 book ai didi

c# - 在方法中使用 'out' 或 'ref' 参数的正当理由是什么?

转载 作者:IT王子 更新时间:2023-10-29 04:53:54 25 4
gpt4 key购买 nike

我鄙视 out 和 ref 作为方法的参数。恕我直言,它们使代码变得不那么干净,并为产生副作用提供了机会。但我承认我可能不明白它们的用处,这可能解释了我厌恶的部分原因。拜托,有人可以解释 out 或 ref 的有效案例吗?

最佳答案

基本上,如果您需要返回多个值,可以使用类似 Tuple<,> 的替代方法或用于封装值的自定义类型。典型的例子可能是 int.TryParse及相关方法。他们想传回两条信息:

  • 解析值
  • 是否解析成功。

现在这些可以实际上是使用返回类型 int? 编写的在这种情况下等等,但对于其他情况也是一样的原则。 (例如 Dictionary<,>.TryGetValue ,其中存储在字典中的值可以合法地为 null。)

我不会说我鄙视 outref参数,但我确实相信它们只应该偶尔使用,并且只有在没有更好的选择时才使用。 ref的大部分用途我在 Stack Overflow 上看到是由于对参数传递的误解。

关于c# - 在方法中使用 'out' 或 'ref' 参数的正当理由是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com