C# 我是否应该始终使用';在';参数修改器(如果可能)?

C# 我是否应该始终使用';在';参数修改器(如果可能)?,c#,performance,C#,Performance,我在搜索out、ref和in参数修饰符之间的差异时发现: in关键字导致参数通过引用传递。[…]与ref或out关键字类似,只是in参数不能由被调用的方法修改 这意味着“in”修饰符类似于“readonly ref”修饰符,对吗?因此,当我不需要修改“in”参数修饰符的值以获得最佳性能时,我是否应该始终使用“in”参数修饰符?您应该仔细查看,并将in修饰符用于您可以在代码路径/评测/优化中找到的特定用例 请记住,“最佳性能”在上下文之外通常毫无意义 文件上是这么说的。。。“在参数中使用定义方法是

我在搜索
out
ref
in
参数修饰符之间的差异时发现:

in关键字导致参数通过引用传递。[…]与ref或out关键字类似,只是in参数不能由被调用的方法修改


这意味着“in”修饰符类似于“readonly ref”修饰符,对吗?因此,当我不需要修改“in”参数修饰符的值以获得最佳性能时,我是否应该始终使用“in”参数修饰符?

您应该仔细查看,并将
in
修饰符用于您可以在代码路径/评测/优化中找到的特定用例


请记住,“最佳性能”在上下文之外通常毫无意义

文件上是这么说的。。。“在参数中使用
定义方法是一种潜在的性能优化。某些结构类型参数的大小可能很大,当在紧循环或关键代码路径中调用方法时,复制这些结构的成本非常关键。方法在参数中声明,以指定参数可以通过引用安全地传递。”e因为被调用的方法不会修改该参数的状态。通过引用传递这些参数可以避免(潜在的)昂贵的副本。”尽管有这样的说明:“因为在大多数现代机器中,
int
不比引用大,所以将单个
int
作为只读引用传递没有任何好处。”由于
ref
out
在运行时是相同的,我猜
in
关键字也是一样的。