2011-12-15 3 views
1

VB.Netでは、System.EventArgsを継承するWorkflowButtonEventArgsというオブジェクトがあります。VB.Net、EventArgs、ByRef、ByVal

WorkflowButtonEventArgsクラスには、2つのプロパティが含まれています。これらはメモリ内にあるオブジェクトであり、私はそれらを何らかの形で複製またはコピーしたくない。

WorkflowButtonEventArgsオブジェクトByValをVB.Netに渡しても、ByRefの定義をWorkflowButtonEventArgsに保存できますか?

私が合格した場合、具体的には、BYVAL:

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

RaiseEvent SomeEventName(e) ' e is passed ByVal 

eByRefプロパティ/メンバーは(WorkflowButtonEventArgsクラス)メモリにコピーまたは複製することはできませんでしょうか?

ロングストーリーショート:私はeByValを渡すことができ、またはそれはByRefプロパティが含まれているので、私はそれByRefに合格する必要がありますか?

+0

"ByRef"プロパティとは、クラスなどの参照タイプのプロパティを意味しますか? – rskar

+0

"ByRef"プロパティとは何ですか?私が知る限り、ByRefキーワードはプロパティには適用されず、プロパティを宣言するときにも使用できません。あなたはもっと具体的になりますか? –

答えて

1

"ByVal"を渡すことができますか? "ByRef"プロパティが含まれているので、 "ByRef"を渡す必要がありますか?

はい。 EventArgsがByValを渡したとしても、参照が指すオブジェクトはコピーされません。

1

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

+0

全員に:元の投稿の誤りに対する私の謝罪。プロパティは参照型変数(特にクラス/オブジェクト)です。私は、イベント引数 "ByVal"を渡すことができ、イベント型の参照型のプロパティはメモリに重複しないように思えます。いいね? – user1100622

+0

参照オブジェクトはメモリに複製されません。 ByValまたはByRefは関係ありません – Magnus

+0

Ok ...私の質問に答えます。みんなありがとう。 – user1100622

0

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

関連する問題