1

私はMSDNを介して ByVal と ByRef を調べています。ByVal で引数を渡す場合、値は常に ByVal によって渡されます。

以下の例では、常に ByRef を渡しています。私は何を間違っていますか?

  Function sampleFunction(ByVal val) 'Even though here i am passing as ByVal it is taking as ByRef
       val=val+1
        sampleFunction=val
    End Function

    x=50
    temp=sampleFunction(x)
    msgbox temp  'prints 51

関数から戻るときに ByVal で引数を渡すにはどうすればよいですか?

4

1 に答える 1

3

関数は の値を受け入れています50。次に、変数を 1 ずつインクリメントしてvalいるため、その変数は現在51です。次に、戻り値を の値val、つまり 51 に設定します。

したがって、temp変数は戻り値である 51 に割り当てられxます。ただし、50関数に渡されたのは値のみで、xパラメーターは変更されていないため、変数は のままです。

もしあなたがByRefここでやってxいたら、51 だったでしょう。

于 2013-07-01T14:44:22.870 に答える