2017-04-09 16 views
0

私はそれを呼び出すと、()を使わないで私に電話をかける機能を持っています。なぜですか?同じ方法で関数とプロパティを呼び出すか?

Public Class Socio 

Private _antiguedad As Integer 

Public Function RetornarAntiguedad() As Integer 
     Return _antiguedad 
    End Function 
End Class 

Sub Main() 
    Dim test = New Socio() 
    test.RetornarAntiguedad <--- This works even though it doesnt have(), why? 
    Console.ReadKey() 
End Sub 

プロパティのように見えますか?それは関数とプロパティの間に混乱を生みませんか?

答えて

0

VB構文では、戻り値を取得するときに関数呼び出しで末尾に()が必要ありません。

上記の例では、戻り値を取得せずにメソッドを呼び出すようにしています。したがって、Visual Studio IDEは自動的にかっこを追加する必要があります。あなたはこれにそれを変更した場合

しかし、:

Dim test As New Socio() 
Dim result as Integer = test.RetornarAntiguedad 

...括弧はもはや必要ありません。

これは単なるVB.NET構文です。何も心配する必要はありません。コードは引き続き機能します。

1

括弧はオプションです。したがって、もちろん引数を追加しない限り、コンパイラはエラーを返しません。 私はそれがVB.Netの "柔軟な"設計によるものだと思います。

関連する問題