我确信这很简单,但我找不到正确的字符串来获取谷歌搜索结果。在VB.NET中,=(等号)和:=(冒号后跟等号)有什么区别?
答案 0 :(得分:16)
:=运算符用于在VB.Net中按名称传递参数。例如,请使用以下代码
Sub Foo(p1 As integer, p2 As String)
..
End Sub
Sub Test()
Foo(p2:="foo",p1:=42)
End Sub
如果你仔细看看这里涉及的类型,我已经不按顺序传递了值。但是因为我使用:=命名参数,所以编译器会正确传递值。
=运算符取决于VB.Net中的上下文。它可以是赋值或比较运算符。例如
Dim x = 42 ' Assignment
if x = 36 Then
'Comparison above
End if
答案 1 :(得分:3)
等号用于赋值,也是比较运算符。分配的一个例子是
a = 5
比较的一个例子是
if (a = 5) then
' do something here
end if
:=专门用于调用函数,通过名称将特定参数设置为值。例如:
Sub studentInfo(ByVal name As String, _
Optional ByVal age As Short = 0, _
Optional ByVal birth As Date = #1/1/2000#)
Debug.WriteLine("Name = " & name & _
"; age = " & CStr(age) & _
"; birth date = " & CStr(birth))
End Sub
通常情况下,您可以像这样调用函数:
Call studentInfo("Mary", 19, #9/21/1981#)
但你也可以这样调用这个函数:
Call studentInfo("Mary", birth:=#9/21/1981#)
答案 2 :(得分:2)
=
是一个比较和一个集合运算符,但:=
只是一个集合运算符。
比较:If 7 = 7 Then
...
设置:Dim myInt As Integer = 7
假设您有一个名为SuperList
的自定义对象,其构造函数采用名为initialCount
的变量,那么您可以执行以下操作:
Dim myList As New SuperList(initialCount:=10)
当您知道要设置的值时,有时更容易阅读构造函数,特别是如果您有SomeConstructor(12, 432, True, False, 32)
查看SomeConstructor(monthsInYear:=12, daysInYear:=432, leapYears:True, leapDays:=False, daysInMonth:=32)
可能还有更多,但这就是我的头脑。