【发布时间】:2013-07-06 03:34:31
【问题描述】:
我有这个程序:
''' <summary>
''' Append text to the current text.
''' </summary>
''' <param name="text">The text to append</param>
''' <param name="forecolor">The font color</param>
''' <param name="backcolor">The Background color</param>
''' <param name="font">The font of the text</param>
Public Sub Append_Text(ByVal text As String, _
ByVal forecolor As Color, _
Optional ByVal backcolor As Color = Nothing, _
Optional ByVal font As Font = Nothing)
Dim index As Int32 = MyBase.TextLength
MyBase.AppendText(text)
MyBase.SelectionStart = index
MyBase.SelectionLength = MyBase.TextLength - index
MyBase.SelectionColor = forecolor
If Not backcolor = Nothing Then MyBase.SelectionBackColor = backcolor
If font IsNot Nothing Then MyBase.SelectionFont = font
MyBase.SelectionStart = MyBase.TextLength
MyBase.SelectionLength = 0
End Sub
我这样调用程序:
RichTextLabel1.Append_Text("My ", Color.White, color.transparent, New Font("Arial", 12, FontStyle.Bold))
RichTextLabel1.Append_Text("RichText-", Color.White, , New Font("Arial", 12, FontStyle.Bold))
我的问题是我是否可以通过使用这样的参数数组进行一次重载(以及如何进行修改)来调用 proc:
RichTextLabel1.Append_Text( _
{"My ", Color.White, Color.Transparent, New Font("Arial", 12, FontStyle.Bold)}, _
{"RichTextLabel", Color.White, Nothing, New Font("Arial", 16, FontStyle.Bold)})
(那段代码显然不起作用)
【问题讨论】:
-
满足您的要求的唯一方法是拥有
Object的二维或锯齿状数组,因此没有类型安全性。为什么调用该方法两次如此糟糕?它已经足够好了。 -
@pswg 感谢您的评论,我只是想简化 proc 的使用,不要写太多代码行,也不要调用太多 proc,也许我这次太乐观了因为您的话似乎很难进行这种修改,也许您可以向我解释一下:“对象的二维或锯齿状数组”
-
看我的回答。我试图说明每个选项的用法,并详细解释它们的问题。
标签: .net arrays vb.net overloading procedure