首先,请看看这个自定义按钮,继承用户控件代码:为什么我必须在这里使用重载?
Public Class UserControl1
Dim _Text As String
Dim _Image As Image
<Browsable(True), Description("Gets or sets the text displayed on the button")> _
Overrides Property Text() As String
Get
Return _Text
End Get
Set(ByVal value As String)
_Text = value
MyBase.Text = value
End Set
End Property
<Browsable(True), Description("Gets or sets the image displayed on the button")> _
Overloads Property Image() As Image
Get
Return _Image
End Get
Set(ByVal value As Image)
_Image = value
'ReDrawMe()
End Set
End Property
End Class
这就是用户控件的所有代码。 Overrides
在Text
属性是好的,但我不知道为什么VS告诉我我不能使用Overrides
在Image
财产,但我可以使用Overloads
。为什么?我认为Overloads
只有在有多个名称相同(不同参数)的方法时才会使用。有两件事情我还怀疑:
- 为什么
Image
在这个级别中唯一的财产申报,但必须叫Overloads
? Property
没有任何参数(当然),所以Overloads
怎么可能?
感谢您的阅读。
如果那么,为什么我们可以使用'Overloads'?它不仅仅用于方法吗?而且,语言如何区分重载的属性,因为它们没有任何独特的参数? – 2011-05-27 11:07:16
@ W.N。你*可以*在VB中重载属性,因为VB中的属性(不是在C#中!)可以有参数。为什么这里有可能,我不知道。 – 2011-05-27 11:09:08
@ W.N。是一个特殊的“版本”的方法,封装了一个getter和setter方法。 – Jodrell 2011-05-27 11:10:15