13

我不时看到这个,想知道它是什么。我确实尝试过 google,但它从搜索中过滤掉了字符。我有几本书也没有参考。

FWIW,我记得帕斯卡是赋值运算符。

谁能指出我的 MSDN 或类似页面?

4

3 回答 3

29

您可以使用 := 语法按名称而不是严格按位置将参数分配给 Sub 或 Function。例如:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TestRoutine(Y:="TestString", X:=12)
    End Sub

    Private Sub TestRoutine(ByVal X As Long, Optional Y As String = "")
        ' Do something with X and Y here... '
    End Sub

End Class

请注意,TestRoutine 将 X 指定为第一个参数,将 Y 指定为第二个参数,但是 Form1_Load 中的调用以相反的顺序将它们指定为使用 := 运算符命名每个参数。

这是关于该主题的 MSDN 文章的链接:

http://msdn.microsoft.com/en-us/library/51wfzyw0.aspx

我不经常看到这个使用,除了在 Excel 的宏记录器生成的 VBA 宏中,它经常使用

于 2008-11-19T16:43:07.097 回答
11

当有多个可选参数时,它非常有用 - 您会在调用 Office 对象模型(Word、Excel 等)的代码中看到很多。当您有 40 个参数,其中 37 个是可选参数,并且您想为参数 34 设置值时和 40,使用 := 比使用看起来像 ("new", "settings", 1, ,,,,,,,,,,,,,,,,,,, 的函数调用要清晰得多,,,,,,,,,43,,2,,,,,7)

我想对 JeffK 发表评论,但我没有足够的代表。

于 2008-11-19T17:44:55.053 回答
4

VB 使用该运算符进行属性值分配:

http://www.ondotnet.com/pub/a/dotnet/excerpt/vbnut_8/index1.html

于 2008-11-19T16:33:57.083 回答