覆盖ToString()以获取自定义类的列表

时间:2017-11-09 10:43:24

标签: vb.net override tostring

我有一个List(Of clsComponent)。

宣布为

Private _FilesToDownload As List(Of clsComponent)

我知道如何覆盖类的ToString(),但我不知道如何覆盖List(Of clsComponent)的ToString()。

任何人都可以给我一个如何做到这一点的提示吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

你可以但是你需要继承列表(T)
并在那里覆盖.toString方法,然后你可以做什么。
在这个示例输出中是

Norbert,Adam,Eva,

要在一个字符串中字符串的所有元素的列表

Sub TestThis()
    Dim Users As New AllUsers(Of User)
    Users.Add(New User With {.Name = "Norbert"})
    Users.Add(New User With {.Name = "Adam"})
    Users.Add(New User With {.Name = "Eva"})
    Debug.Print(Users.ToString)
End Sub

Public Class User
    Property Name As String
    Public Overrides Function ToString() As String
        Return Me.Name
    End Function
End Class
Public Class AllUsers(Of T)
    Inherits List(Of T)
    Public Overrides Function ToString() As String
        Dim Sb As New Text.StringBuilder
        For Each e In Me
            Sb.Append(e.ToString & ",")
        Next
        Return Sb.ToString
    End Function
End Class