以同样的方式调用函数和属性?

时间:2017-04-09 19:23:51

标签: vb.net

我有一个函数,当我调用它时,它让我不使用(),为什么?

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

它看起来像一个属性?它不会在函数和属性之间产生混淆吗?

2 个答案:

答案 0 :(得分:1)

括号是可选的,因此编译器不会返回错误,除非您正在添加参数。 我认为这是由于&#34;灵活的&#34; VB.Net的设计。

答案 1 :(得分:0)

在VB语法中,当您捕获其返回值时,函数调用不需要尾随()

在上面的示例中,您将调用函数,而不是捕获其返回值。因此,Visual Studio IDE应自动附加括号。

但是,如果您要将其更改为:

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

......不再需要括号。

这只是VB.NET语法,就是这样。没什么好担心的。您的代码仍然有效。