イベントを処理しているコードによって更新されたときに、クラスのコンストラクタのbyrefパラメータも更新される書き込み専用プロパティを持つ汎用EventArgsサブクラスを作成します。コンストラクタパラメータへのアクセスByRef
これまでのコードは動作しません。設定された値を取得できるように、「アイテム」コンストラクタパラメータを更新するプロパティ「アイテム」を取得するにはどうすればよいですか?
Dim myItem As SomeType = Nothing
Dim e = new EventArgsSet(Of SomeType)(myItem)
RaiseEvent SomeEvent(Me, e)
//'Do something with myItem
そして、このようなものになりますイベントハンドラ:
Public Sub myObj_SomeEvent(sender As Object, e As EventArgsSet(Of SomeType)) Handles myObj.SomeEvent
e.Item = theObjectToSet
End Sub
:代わりにイベントを登録すると、あなたは、単にそのようなコールバックメソッドを設定します任意のk親の構造の養子縁組。答えの2番目の部分については、私が投稿したコードの脆弱性を認識していますが、達成しようとしていることを示すのに役立つと思いました。私はそれについて間違っていたと思う。 – adam0101
ゲッターを公開した場合、アイテムを直接更新することができます。それは単純な割り当てではないでしょう、それはあなたがオブジェクト上で更新する必要があるかを知る必要があるでしょう。たぶんクラスを "更新"する方法を知るためのインターフェイスを使うことができます。 – Bryan