私の目標は、MyBaseClassのコレクションを指すCollectionプロパティをMyBaseClassに設定できるようにすることでした。これは、タイプMyCollection(Of T)であり、TはMyBaseClassのタイプです。基本クラスは、何がそれをサブクラス化するかを知りません。したがって、MyCollectionの実装を割り当て、早期バインディングとインテリセンスを取得する必要がありました。
私はケーキを持ってそれも食べる必要がありました(初期バインディングと後期バインディング)。
MyBaseClass内で行ったことは次のとおりです。
Public Event pCollectionChanged(Value As IList)
Private _pCollection As IList
<XmlIgnore()> _
<System.ComponentModel.Browsable(False)> _
Public Property pCollection As IList
Get
Return _pCollection
End Get
Set(Value As IList)
If _pCollection Is Value Then Exit Property
_pCollection = Value
RaiseEvent pCollectionChanged(Value)
End Set
End Property
Public Function Collection(Of t As MyBaseClass)() As MyCollection(Of t)
Return pCollection
End Function
これで、MyCollection(Of any)をpCollectionに割り当てることができ、コードを呼び出すことでこれを行うことができます。
Dim MyObject As New MyBaseClassSubType
MyObject.Collection(Of MyBaseClassSubType).MyNeatoCollectionMethod
一方、以前はCollection As IListを使用していましたが、MyNeatoCollectionMethodにアクセスできませんでした。
多田!答えてくれたすべての人に感謝します。