1

WCFで奇妙な問題が発生し、パラメーターをrefとして渡します。

私がクラスを持っているとしましょう:

Class MyClass 
{
     public string str;
}

そして、このようなコードブロック:

List<MyClass> c = new List<MyClass>();
c.Add(new MyClass());
MyClass c2 = c[0];

次に、そのクラスのstr-propertyを更新する必要があるWCFメソッドを呼び出すと、次のようになります。

WCFService.UpdateStr(ref c2);

c [0]とc2は異なります-str-propertyに同じ文字列を含めるべきではありません!?ref関数パラメータによるWCFに何か問題がありますか?

4

1 に答える 1

5

いいえ、そうすべきではありません。参照によって渡されるパラメーターは、オブジェクト自体を変更できることを意味し、WCF 呼び出しの場合は変更可能です。への呼び出しがUpdateStr戻ると、c2 は別のオブジェクト インスタンスを参照します。

以下の画像は、このシナリオで何が起こっているかを示しています。

ここに画像の説明を入力

于 2013-02-18T20:52:00.360 に答える