代码之家  ›  专栏  ›  技术社区  ›  Jason Irwin

=和之间的区别是什么:=

  •  6
  • Jason Irwin  · 技术社区  · 15 年前

    我确信这很简单,但是我找不到正确的字符串来获得google结果。在VB.NET中=(等号)和:=(冒号后跟等号)之间的区别是什么?

    3 回复  |  直到 15 年前
        1
  •  16
  •   JaredPar    15 年前

    :=运算符用于在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
    
        2
  •  3
  •   Tommy Hui    15 年前

    等号用于赋值,也是一个比较运算符。分配的一个例子是

      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#)
    
        3
  •  2
  •   Cᴏʀʏ bcherry    10 年前

    = := 它只是一个集合运算符。

    比较: 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)

    可能还有更多,但这是我脑子里想出来的。