C# 中 "in" 参数的用途

Purpose of "in" parameters in C#

C# 7.2 为方法引入了 in 参数。我了解它们的工作原理:

int MyMethod(in int i) {
    i += 1; // illegal, i is read-only
    return i + 1;
}

我不明白这些参数是通过引用传递的(比如 refout)。

不明白的是in参数的目的。使用它们有什么好处?
我理解 outref 参数的用途,能够在调用范围内为变量赋值非常有用,但是 in 参数不存在该函数.

"in" 可用于将变量作为只读引用(值类型和引用类型)传递。 传递只读引用的原因是,如果我传递一个没有引用的值类型变量,那么每次都会创建一个新副本。因此,这将需要额外的内存并且性能会变慢。