1

VB.Net には、WorkflowButtonEventArgsから継承した という名前のオブジェクトがありますSystem.EventArgs

WorkflowButtonEventArgsクラスには 2 つのプロパティが含まれますByRef。これらはメモリ内にあるオブジェクトであり、決して複製またはコピーしたくありません。

WorkflowButtonEventArgsオブジェクトByValを VB.Netに渡し、2 つのByRef定義を.NET に保持することはできますWorkflowButtonEventArgsか?

具体的には、ByVal を渡すと:

Dim e As New WorkflowButtonEventArgs(...) ' e has some ByRef properties

RaiseEvent SomeEventName(e) ' e is passed ByVal

(クラス)のByRefプロパティ/メンバーは、メモリ内でコピーまたは複製されませんか?eWorkflowButtonEventArgs

簡単に言うと、 を渡すことができますか、それともプロパティが含まれてe ByValいるため渡す必要がありますか?ByRefByRef

4

3 に答える 3

1

参照オブジェクトはメモリ内で複製されません。パラメーターのByRefキーワードは、呼び出し元のコードで引数の基になる変数の値を変更できることを意味するだけです。

于 2011-12-15T19:42:13.943 に答える
1

「ByVal」を渡すことはできますか、それとも「ByRef」プロパティが含まれているため「ByRef」を渡す必要がありますか?

はい。EventArgsByVal が渡された場合でも、参照が指すオブジェクトはコピーされません。

于 2011-12-15T19:40:45.767 に答える
0

目標を達成する別の方法は、2 つのプロパティを格納するシングルトンを作成することです。

于 2011-12-15T19:43:56.983 に答える