2009-04-18 60 views
6

これは簡単ですが、Googleの結果を得るための正しい文字列が見つかりません。 VB.NETでは、=(等号)と:=(コロンの後に等号)の違いは何ですか?=と:=の相違点

答えて

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 
+0

おねがいします、ありがとうございます! –

2

=は、比較AND演算子ですが、:=は単なる演算子です。

は比較:If 7 = 7 Then ...

はセット:

Dim myList As New SuperList(initialCount:=10) 
Dim myInt As Integer = 7

は、カスタムオブジェクトは、あなたのようなことを行うことができ、そのコンストラクタinitialCountという変数を取るSuperListと呼ばれていると言います

コンストラクタを設定しているときにコンストラクタを読むほうが時々簡単です。特にコンストラクタがSomeConstructor(12, 432, True, False, 32)

それはより多くの意味があり、おそらくより多くのだが、これは私が私の頭の上を切ったものですSomeConstructor(monthsInYear:=12, daysInYear:=432, leapYears:True, leapDays:=False, daysInMonth:=32)

を参照することができます。

+1

が、vb.net =ですセットと比較の両方の演算子 –

+0

あなたの開始文は正しくありません –

+0

編集済み...私の悪いです。 –

3

等号は、代入に使用され、比較演算子でもあります。 =名前によって値に特定のパラメータを設定して機能を呼び出すために特別に使用される:割当ての一例は、比較の例は

if (a = 5) then 
    ' do something here 
    end if 

ある

a = 5 

あります。たとえば:

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#) 
関連する問題