彼らですか?または、プログラムを高速化するには、参照渡しする必要がありますか?
参照が渡されます値による。
.NETの配列はヒープ上のオブジェクトなので、参照があります。その参照は値によって渡されます。つまり、配列のcontentsへの変更は呼び出し元に見えますが、reassigningは配列を認識しません。
void Foo(int[] data) {
data[0] = 1; // caller sees this
}
void Bar(int[] data) {
data = new int[20]; // but not this
}
ref
修飾子を追加すると、referenceが渡されますby reference--呼び出し元は上記のいずれかの変更を確認します。
それらは値で渡されます(refでもoutでもないすべてのパラメーターと同様)が、値isはオブジェクトへの参照なので、事実上参照で渡されます。
はい、C#ではデフォルトで参照渡しされます。 C#のすべてのオブジェクトは、値型を除きます。少し正確にするために、「値による参照」で渡されます。つまり、メソッドに表示される変数の値は、渡された元のオブジェクトへの参照です。これは小さなセマンティックポイントですが、時には重要になることがあります。