私はこのルールを理解しています。しかし、なぜこれが分かっていますか?インデックスパラメータをrefパラメータとして渡せないのはなぜですか?
私のコードがある場合:
List<T> x = new List<T>;
x.Add(new T());
x.Add(new T());
x.Add(new T());
int y = 2;
//And I call a method
M1(ref x[y]);
のREF X [Y]関心のTの私のインスタンスへのポインタだけがそれではないですか?
私は非常に単純な方法でM1()というコード行を書くことができません。
。私は、C#の建築家がポインタを渡すために、この余分なステップを必要とする理由を聞くことを望んでい
T cX = x[y];
M1(ref cX);
:
は私が回避策を知っていますか?それともコンパイラの制限ですか?
'ref'と' out'は値ではなく場所に適用されます。 'x [y]'は 'T'型の値ですが、' cX'は 'T'を含む位置です。 – Lee
既にこれについての[たくさんの質問](http://stackoverflow.com/questions/529782/c-sharp-property-and-ref-parameter-why-no-sugar)があります。そのリンク上の2番目の答えを見てください。 – Jonesopolis