vb.net - 如何使用分部类作为子类?

标签 vb.net subclass partial-classes

我正在尝试将 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

子类

我想用作 clsMain.MySubClass 的 class.vb。 文件: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

最佳答案

您应该创建一个包含该类实例的属性,而不是尝试将其设为分部类。

嵌套类必须被创建并拥有实例,就像顶级类一样。通过在主类中创建属性,您可以在主类构造函数中自动创建该实例,并且您的代码将按预期工作。

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()

关于vb.net - 如何使用分部类作为子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16778225/

相关文章:

objective-c - 警告 : incompatible Objective-C types assigning superClass to subClass

java - 参数 "Subclass Only Where It Makes Sense"的详细解释是什么?

visual-studio - WinForm 部分类

vb.net - 如何打开 Windows 磁盘碎片整理程序

vb.net - 向整数数组添加新值 (Visual Basic 2010)

Python:如何总结类中列表中的所有元素

c# - 部分类与扩展方法

c# - 如何在 C# 项目中使用 VB.Net 扩展方法

c# - 清除 C#/VB.NET 中的字体使用

c# - 接口(interface)和部分类