2011-02-07 8 views
0

観測可能なコレクションを参照パラメータとして渡すことはできますか?観測可能なコレクションをrefパラメータとして渡すことはできますか?

参照パラメータとして渡すことができないというエラーが発生しました。

「インデクサーの特性が出たりREFパラメータとして渡すことはできません」:

これは私が取得しています正確なエラーメッセージです。

+1

は男ねえ、あなたが助けをしたい場合は、もう少し取材を行う必要があるでしょう。シンプルなコードでエラーが表示され、エラーメッセージが表示されます。実行時エラーかコンパイルエラーかなどが表示されます。投稿を編集してそれらを含めることができますか? – Crisfole

+2

.NETでは、構造体/値型以外はこれを行う必要はありません。プリミティブではないすべての型(参照型)は自動的にrefによって渡され、refまたはoutで値の型を渡す場合、ほとんどの場合、作業が必要です。 – Will

+1

@Will:正確ではありません。 C#では、refは自動的に渡されません。 'Dictionary .TryGetValue(" blah "、x);'文字列は参照型ですが、 'Dictionary .TryGetValue(" blah "、x);'は動作しません。 –

答えて

2

はい、参考までにObservableCollectionを渡すことができます。ただし、どのクラスでもthisを参照渡しすることはできません。 (構造体の場合はできますが、しないでください)

通常の変数を参照渡しに問題がある場合は、いくつかのコードを投稿してください。

編集:私はちょうどあなたの編集を見ました...そして、コンパイラのエラーメッセージはかなり明確です。参照によってプロパティまたはインデクサを渡すことはできません。

Foo(ref x.SomeProperty); 

をしかし、あなたが行うことができます:だからあなたが行うことはできません

var tmp = x.SomeProperty; 
Foo(ref tmp); 
x.SomeProperty = tmp; 
+0

ObservableCollectionはクラス型です。 – Relativity

+0

@Anish:私の編集した答えを見てください。あなたの質問は前にはっきりしていなかった - それは今より明白だ。だからうまくいけば私の答えはより多く使われるだろう。そうでない場合は、エラーメッセージではなく実際のコードを投稿してください。 –

関連する問題