1

わかりました、製品の使用方法の例を使用するために実行することになっているサンプルコードがいくつかあります...そして、このコードがあります:

protected void checkout_Click(object sender, EventArgs e)
{
    OurWebServiceClient client = new OurWebServiceClient();
    this.session = client.BindAccount(ref this.session);
    client.FinalizeSession(this.session);
    client.Close();
    this.checkout.Text = "success";
    this.checkout.Enabled = false;
}

したがって、このコードはさまざまな理由で私には少し奇妙ですが、私にとって際立っているのはメソッドの 2 行目です。

this.session = client.BindAccount(ref this.session);

これは ref であるため、 this.session は実際には呼び出し後に別のオブジェクトを指す可能性があります。それを除いて、彼らは呼び出しから返された値に this.session を割り当て、それを参照として持つことによって得たものをすべて吹き飛ばします (私が知る限り)。とにかく、ref 変数を Web サービスに渡すとはどういう意味でしょうか?

4

1 に答える 1

0

その Web サービスから返されたものはすべて に割り当てられthis.sessionます。this.sessionref は戻り値に割り当てられるため、ref の使用は失われます。

パラメーターを ref として Web サービスに渡すことにより、他のメソッド呼び出しに期待される機能が得られます。つまり、そのパラメーターに対する変更が反映されます。しかし、IMO では、これは Web サービスをコーディングするための良い方法ではありません。ややこしい。

于 2014-05-22T12:57:34.807 に答える