5
C#で「in」パラメータ修飾子を使用するのはなぜですか?
だから、私は(私が思うに)inパラメータ修飾子が何をするのか理解しています。しかし、それが行うことはかなり冗長であるように見えます。 通常、aを使用する唯一の理由refは、呼び出し変数を変更することであると思いますin。これは、によって明示的に禁止されています。したがって、in参照による受け渡しは、値による受け渡しと論理的に同等のようです。 パフォーマンス上の利点はありますか?物事のバックエンド側では、refパラメーターは少なくとも変数の物理アドレスをコピーする必要があると私は信じていました。これは、一般的なオブジェクト参照と同じサイズである必要があります。 それでは、大きな構造体だけに利点があるのでしょうか、それとも他の場所で魅力的なものにする舞台裏のコンパイラ最適化があるのでしょうか。後者の場合、なぜすべてのパラメーターをaにするべきではないのinですか?