覆盖自定义列表的 ToString() class
Override ToString() for list of custom class
我有一个列表(包含 clsComponent)。
声明为
Private _FilesToDownload As List(Of clsComponent)
我知道如何为 class 覆盖 ToString(),但我不知道如何为 List(Of clsComponent) 覆盖 ToString()。
任何人都可以告诉我如何做到这一点吗?
谢谢。
你可以,但你需要继承列表(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
我有一个列表(包含 clsComponent)。
声明为
Private _FilesToDownload As List(Of clsComponent)
我知道如何为 class 覆盖 ToString(),但我不知道如何为 List(Of clsComponent) 覆盖 ToString()。
任何人都可以告诉我如何做到这一点吗?
谢谢。
你可以,但你需要继承列表(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