【发布时间】:2018-09-05 22:07:42
【问题描述】:
我只是想知道使用 c# 7.2 中的 in 方法参数有什么缺点
我知道这被推荐用于处理 Structs,他们说它不会 increase performance that much 但据我所知,这不会对代码产生任何负面影响,并且可能会在进行递归时帮助您解决堆栈溢出异常。
有没有人知道为什么所有方法都不应该标记为in 的充分理由?
I found 为什么人们建议避免使用 ref 和 out 但它们在这里不起作用。
【问题讨论】:
-
使用
in,您可以明确告知参数不会被更改。所以这取决于我想的情况 -
@EpicKip 那我想知道什么情况下没有更好的参数?我想不出来。
-
什么时候可以更改?此外,何时更改根本无关紧要。或者很明显参数只是输入,例如
Create()方法通常不会更改参数,因此您不必显式指定 -
例如,当引用大于对象本身时,复制成本更低。
-
@Tigran 这是有道理的。您知道可能发生这种情况的情况吗?