Update1: この更新の前は一種の複製でしたが、今では十分に具体的であり、複製はこの編集された質問にまったく答えていないと思います. わかりましたので、制約付きのジェネリック クラスを使用する必要があることがわかりました。クラスから派生したクラスのみに制限する方法については、まだ問題が残っています。
実際には、派生クラスで宣言された型を使用して、ある種の抽象プロパティを宣言できるようにしたいと考えていますが、元のクラスで宣言された派生型のみに制限されています。この例を見てみましょう:
Public Class ObjectBase
End Class
Public Class Derived1Class
inherits ObjectClass
Public Property1 as String
End Class
Public class Derived2Class
inherits ObjectClass
Public Property2 as string
End Class
Public Class SomeOtherClass(Of T as {OnlyClassesWhichInherits(ObjectBase)})
Public Property SomeProperty as T
End Class
Public Class SomeOtherDerivedClass
inherits SomeOtherClass
Sub New()
SomeProperty = New Derived1Class
SomeProperty.Property1:="this should be valid"
End Sub
End Class
これを達成できるように私が知っている唯一の方法は、SomeProperty をオブジェクトとして宣言することです (Update1:現在、この機能はジェネリック クラスと呼ばれています)。SomeProperty を ObjectBase として宣言すると、コンパイラは SomeProperty=New DerivedClass に問題はありませんが、Property1 が ObjectBase のメンバーではないことを訴えます。これは、私が興味を持っている種類の動作が .NET に既に存在し、オブジェクト クラス (Update1: Generic Classes) に実装されていることを意味します。
ObjecBase の派生クラスに制約を書き込む方法は?