作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我鄙视 out 和 ref 作为方法的参数。恕我直言,它们使代码变得不那么干净,并为产生副作用提供了机会。但我承认我可能不明白它们的用处,这可能解释了我厌恶的部分原因。拜托,有人可以解释 out 或 ref 的有效案例吗?
最佳答案
基本上,如果您需要返回多个值,可以使用类似 Tuple<,>
的替代方法或用于封装值的自定义类型。典型的例子可能是 int.TryParse
及相关方法。他们想传回两条信息:
现在这些可以实际上是使用返回类型 int?
编写的在这种情况下等等,但对于其他情况也是一样的原则。 (例如 Dictionary<,>.TryGetValue
,其中存储在字典中的值可以合法地为 null。)
我不会说我鄙视 out
和 ref
参数,但我确实相信它们只应该偶尔使用,并且只有在没有更好的选择时才使用。 ref
的大部分用途我在 Stack Overflow 上看到是由于对参数传递的误解。
关于c# - 在方法中使用 'out' 或 'ref' 参数的正当理由是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780209/
我是一名优秀的程序员,十分优秀!