同じイベントを持つ2つのクラスがある場合、それらを1つの名前で参照できるようにしたいと考えています。次のような:実行時に同じイベントで異なるクラスにどのようにアタッチするのですか?
Sub somefunction(select as integer)
Dim voidclass
if select = 1 then
voidclass = myclass1
else
voidclass = myclass2
end if
AddHandler voidclass.event1, AddressOf eventhappened
End Sub
Sub eventhappened()
msgbox("Event occured")
End Sub
は明らかに、この例のためのより良い方法があるかもしれませんが、してみましょう:
ここPublic Class myclass1
Public event1()
End Class
Public Class myclass2
Public event1()
End Class
私はどのクラスを使用するために、実行時に決定できるようにしたいと思いますクラスbook1
がすでに存在し、book2
を作成してsomefunction
を変更することを務めていることを、book1
自身で変更することはできません。
上記の例では、エラーevent1
は「オブジェクト」のイベントではありません。
プロパティとメソッドはこれで問題ないようですが、イベントはありません。このような状況でイベントを処理するにはどうすればよいですか?
'GetType()'比較と組み合わせたキャストはどうですか?または、他のクラスが派生する基底クラスを作成します。基底クラスにはイベントが含まれます。次に、基本クラスにキャストできます。 –