Problems working with tree structured classes....[Resolved]
Hello,
If you have a tree structure of classes, how can you access functions, ect. accross branches of the tree ??
For example:
If you have the following classes:
ClassMain
Class1
Class2
Class3
ClassA
ClassB
ClassC
And they are structured as two main branches:
ClassMain.Class1.Class2.Class3
and
ClassMain.ClassA.ClassB.ClassC
How can I easily access Properties or functions of ClassC from inside of Class3:
VB Code:
'******************
'*** Class Main ***
'******************
Class clsClassMain
Public ClassA As New clsClassA()
Public Class1 As New clsClass1()
Public Sub New()
Debug.WriteLine(ClassA.ClassB.ClassC.DoSomething(123))
Debug.WriteLine(Class1.Class2.Class3.SomethingNew(456))
End Sub
End Class
'********************
'*** First Branch ***
'********************
Class clsClassA
Public ClassB As New clsClassB()
End Class
Class clsClassB
Public ClassC As New clsClassC()
End Class
Class clsClassC
Public Function DoSomething(ByVal Value As Int16) As Int16
'Do something usefull with Value
End Function
End Class
'*********************
'*** Second Branch ***
'*********************
Class clsClass1
Public Class2 As New clsClass2()
End Class
Class clsClass2
Public Class3 As New clsClass3()
End Class
Class clsClass3
Public Function SomethingNew(ByVal Value As Int16) As Int16
'ClassMain can't be used here - what can I use to get the reference of the first branch ???
Return ClassMain.ClassA.ClassB.ClassC.DoSomething(Value) * 16
End Function
End Class
I know that I could manually pass object references into each brach, but is there a way to get a "Parent Class" reference ??
Thanks for any help !!
Problems working with tree structured classes.... [Resolved]
I figured it out:
This configuration will work if clsClassMain uses the Shared keyword when creating Class1 and ClassA, like this:
VB Code:
'******************
'*** Class Main ***
'******************
Class clsClassMain
Public Shared ClassA As New clsClassA()
Public Shared Class1 As New clsClass1()
Public Sub New()
Debug.WriteLine(ClassA.ClassB.ClassC.DoSomething(123))
Debug.WriteLine(Class1.Class2.Class3.SomethingNew(456))
End Sub
End Class
'********************
'*** First Branch ***
'********************
Class clsClassA
Public ClassB As New clsClassB()
End Class
Class clsClassB
Public ClassC As New clsClassC()
End Class
Class clsClassC
Public Function DoSomething(ByVal Value As Int16) As Int16
'Do something usefull with Value
End Function
End Class
'*********************
'*** Second Branch ***
'*********************
Class clsClass1
Public Class2 As New clsClass2()
End Class
Class clsClass2
Public Class3 As New clsClass3()
End Class
Class clsClass3
Public Function SomethingNew(ByVal Value As Int16) As Int16
'ClassA and Class1 brances can now be accessed using the original name of ClassMain which is "clsClassMain"
Return clsClassMain.ClassA.ClassB.ClassC.DoSomething(Value) * 16
End Function
End Class
Thanks for the replies !!
thanks for sharing Techman