VB.NET中的OOP – 孩子,父母,父母

VB.NET中的OOP – 孩子,父母,父母,第1张

概述我正在尝试用VB做一些事情,我想我不知道如何做到这一点.对不起,我对OOP并不擅长. 我有很多我正在创建的东西,它们有两个值 – 父名和子名(是的,实际的人!). 所以它会是这样的: Public Class Child Public Property ParentName As String Public Property ChildName As StringEnd Clas 我正在尝试用VB做一些事情,我想我不知道如何做到这一点.对不起,我对OOP并不擅长.

我有很多我正在创建的东西,它们有两个值 – 父名和子名(是的,实际的人!).

所以它会是这样的:

Public Class Child    Public Property Parentname As String    Public Property Childname As StringEnd Class

然后:

Public Class Parent    Public Property Parentname As String    Public Property Childname() As StringEnd Class

然后我需要将这些添加到Parent类中,其中Parent可以有一个或多个子级.

我首先添加一个Child.如果该子项的父名称已存在,则只需将Child的名称添加到该父项,但如果该项不存在,则创建一个新的父项(使用该子项).然后将所有父母添加到父母的集合(与他们的1个或更多孩子).

结果列表看起来像这样:

父母:

>父母:Jonathan Murry

>孩子:Carl Murry

>父母:凯瑟琳安德森

>孩子:史蒂文安德森
>孩子:德博拉安德森
>孩子:托马斯安德森

>家长:徐静

>孩子:刘明
>孩子:刘宁

(注意最后一个 – 父/子姓不需要匹配 – 在这种情况下,孩子取父亲的姓,而不是母亲,但我们不列出父亲).

我如何创建这些类型的类,以便我可以将子项添加到父项,将父项添加到父项,然后确保它与linq一样可以使用?

Thx提前.

解决方法 既然他们都是人,也许应该有一个人类.每个人都可以是母亲,父亲和儿童集合.通过这种方式,您可以创建几代图形和各种星座.

Public Class Person    Public Property name As String    Public Property Mother As Person    Public Property Father As Person    Public Property Children As List(Of Person)End Class

更新
这是一个更全面(并且有点重写)的例子,或许可以帮助揭示一些亮点:

Person类略有变化(用Parent替换Mother / Father,使Children属性为’Readonly’)

Public Class Person    Public Property name As String    Public Property Parent As Person    Private _children As New List(Of Person)    Public Readonly Property Children As List(Of Person)        Get            Return _children        End Get    End PropertyEnd Class

还有一个示例程序创建一个Person列表,并构成一个liNQ查询.

Module Program    Sub Main()        Dim persons As IEnumerable(Of Person) = GetPersonGraph()        Dim jonathansChildren As IEnumerable(Of Person)        jonathansChildren = persons.Where(Function(p) _                                Not p.Parent Is nothing _                                AndAlso p.Parent.name = "Jonathan Murphy")        For Each child As Person In jonathansChildren            Console.Writeline(child)        Next    End Sub    Function GetPersonGraph() As IEnumerable(Of Person)        Dim result As New List(Of Person)        Dim parent As Person        Dim child As Person        parent = New Person()        parent.name = "Jonathan Murphy"        result.Add(parent)        child = New Person()        child.name = "Carl Murry"        child.Parent = parent        parent.Children.Add(child)        result.Add(child)        Return result    End FunctionEnd Module
总结

以上是内存溢出为你收集整理的VB.NET中的OOP – 孩子,父母,父母全部内容,希望文章能够帮你解决VB.NET中的OOP – 孩子,父母,父母所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1236213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存