-1
この3つのクラス構造は私のコードの簡略図である。カスケードクラスのプロパティvb.net
基本クラス:
Public Class A
Public x As Integer
Protected Function G() as Integer
Return x
End Function
Protected Sub S(value as Integer)
x = value
End Sub
Public Function Test()
Return x + 10
End Function
End Class
サブクラス:
Public Class B
Inherits A
Public Property Prop As Integer
Get
Return G()
End Get
Set(ByVal Value As Integer)
S(Value)
End Set
End Property
End Class
Public Class C
Inherits A
Public InnerB As New B
End Class
目標は、できるようにすることです次のようなコードを書く:
Dim B1 as New B
Dim C1 as New C
B1.Prop = 10
C1.InnerB.Prop = 20 'the "x" member inherited from A takes the value 20 for the InnerB object but not for the C1 object.
MsgBox(B1.Test()) ' returns 20. Works!
MsgBox(C1.Test()) 'returns 10 instead of 30.
Cから継承した "x"メンバーを、内部クラスBから "prop"を呼び出すことで埋め込むことはできますか?あなたが設定
奇妙あなたの答えをありがとう、私の例では動作しますが、私の実際のコードでは動作しません.Cクラスには実際に多くの内部クラスが含まれていますすべてAクラスから継承されています。私が何をしているのかを説明するために、基本的にORMです。クラスAはデータベース接続マネージャを表します(レコードセットとmovenext/previousメソッドなどを含みます)。各Bクラスはデータベーステーブルを表し、各プロパティはフィールドを表します。 Cクラスはすべてのデータベーステーブルを含むオブジェクトです。このクラスを使用して、複数のテーブルでsql "SELECT"要求を管理します。あなたが言ったように、多分それは "奇妙"であり、別の論理が存在するかもしれない。 – kloug
@klougもっとお手伝いできないのなら、すみません。問題の内容を理解するのは少し難しいです。 –
私は解決策を見つけました。問題は実際に内部クラスから外部クラスメンバーにアクセスする方法でした。このスレッドは私を助けました[リンク](https://stackoverflow.com/questions/8692475/how-to-get-a-value-inside-parent-class-from-child-class-in-nested-classes) – kloug