什么是(VB).NET中的":="运算符或它有什么用处?

Sti*_*ack 12 .net vb.net colon-equals

我不时地看到这一点,想知道它是什么.我确实试过谷歌,但它过滤掉搜索中的字符.我有几本书也没有引用它.

FWIW,我记得在pascal中是赋值运算符.

任何人都可以指向MSDN或类似页面吗?

Jef*_*ffK 28

您可以使用:=语法按名称将参数分配给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
Run Code Online (Sandbox Code Playgroud)

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

以下是有关该主题的MSDN文章的链接:

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

我没有经常使用这种方法,除了Excel的宏录制器生成的VBA宏,它使用了很多.

  • 调用特定的布尔参数意味着它也非常有用.useStyle:= True对读者来说比普通的True更清晰. (2认同)

Ric*_*den 11

当有多个可选参数时,它非常有用 - 您可以看到很多代码正在调用办公室对象模型 - Word,Excel等.如果有40个参数,其中37个是可选参数,并且您想要为参数设置值34 40,使用起来清楚得多:=而不是看起来像一个函数调用("new","settings",1,,,,,,,,,,,,,,,,,,,, ,,,,,,,,, 43,2 ,,,,, 7)

我想把它作为对JeffK的评论,但我没有足够的代表.