【发布时间】:2016-11-06 21:49:30
【问题描述】:
我确实先搜索了这个并且有一些类似的帖子,但我找不到我的答案。 :(
假设我有一个类:
Public Class ND
Private mNumsDrawn = New List(Of Integer)
Public Sub New(ByVal vNum As Integer)
For i = 1 To vNum
mNumsDrawn.Add(0)
Next
End Sub
Public Property NumsDrawn As List(Of Integer)
Get
Return mNumsDrawn
End Get
Set(ByVal value As List(Of Integer))
mNumsDrawn = value
End Set
End Property
End Class
我想覆盖属性 NumsDrawn 的 .ToString。
如果我将 .ToString 覆盖放在类中,那么它当然只是覆盖类' .ToString 。我可以使用它来输出列表中的所有数字,但我想更改抽奖中一个数字的输出。
Dim MyDraw = New ND(6)
MsgBox(MyDraw.ToString)
但我想要的是这样的..
MsgBox(MyDraw.NumsDrawn(1).ToString)
谢谢!
【问题讨论】:
-
MyDraw.NumsDrawn(1).ToString()有什么问题? -
你必须从 List(Of T) 派生你自己的类。这是可能的。然而,您为什么要向 NumsDrawn 传递参数却很难猜到。
-
实际上我以前没有使用过列表,这一切都设置为数组。我将一个参数传递给 Numsdrawn New 因为需要设置大小,并且每次使用它都可能不同,但不会改变。我可能会回到数组,因为我对它们有点熟悉,而且数字一旦设置就不会改变。 ND 类也只是一个更大类的子类,我试图简化问题。您的主要问题甚至不仅仅是.Tostring,它更多的是如何为类中的属性创建方法。我将努力创建另一种类方式,看看它的发展方向,谢谢!
-
Alex,我想覆盖 NumsDrawn().ToString,这样我就可以用零填充整数。但更普遍的问题是如何在类中创建属性的方法(可能不是正确的措辞)。类似于 MyDraw.NumsDrawn(1).MyRoutine。我在 ND 类中输入的任何内容都会以 Mydraw.MyRoutine 的形式出现
标签: .net vb.net properties tostring overriding