Как использовать разделяемый класс в качестве подкласса?
Я пытаюсь реализовать mySubClass.VB-файл как вложенный подкласс другого основного класса. Похоже, что идея Partial Class
- это то, что мне нужно, но реализация не работает, когда я пытаюсь вытащить mySubClass.vb в качестве вложенного подкласса другого основного класса.
Моя первоначальная реализация этого кода использовала mySubClass
непосредственно, поэтому я знаю, что функциональность работает. Я просто хочу использовать mySubClass
в качестве структуры данных внутри clsMain
.
Основной Класс
Public Class clsMain
Public Property myIntProp as Integer
Public property myStrProp as String
'other properties
Partial Public Class MySubClass
'I want this functionality to be accessible via clsMain.MySubClass
'Just like any other property or function of clsMain
'Partial would keep things organized nicely
End Class
End Class
Саб Класс
Класс.vb, который я хочу использовать в качестве clsMain.Мистический класс. Файл: MySubClass.vb
Partial Public Class MySubClass
Inherits BaseCollection
Private Class MySubSubClass '(Used for custom properties and functions)
'More properties and Functions
End Class
End Sub
Public Class BaseCollection 'functionality of MySubClass
Public Function MyFunction1()
'Return Data
End Function
End Class
Как используется основной класс
Public Class UsageClass
Private myMainDataStructure as new clsMain
Private Sub GetSubClassList()
dim MyData as ArrayList = myMainDataStructure.MySubClass.MyFunction1()
'^^^ error on this line: MyFunction1() is not a member of project.clsMain.MySubClass^^^
End Sub
End Class
1 ответ:
Вместо того, чтобы пытаться сделать это частичным классом, вы должны просто создать свойство , содержащее экземпляр этого класса.
Вложенные классы должны быть созданы и иметь экземпляры, как и классы верхнего уровня. Создав свойство в своем основном классе, вы можете автоматически создать этот экземпляр в своем главном конструкторе класса, и ваш код будет работать должным образом.
Public Class clsMain Public Property myIntProp as Integer Public property myStrProp as String 'other properties Public Property OtherFunctionality as MyOtherClass = New MyOtherClass()
Затем просто определите класс в отдельном файле:
Public Class MyOtherClass Public Sub MyFunction1()