我有以下函数定义:
Function Parameterless() as String
没有对它进行覆盖或重载。以下代码行可以愉快地编译和运行:
Dim s as String = Parameterless(1)
发生了什么事情?
我有以下函数定义:
Function Parameterless() as String
没有对它进行覆盖或重载。以下代码行可以愉快地编译和运行:
Dim s as String = Parameterless(1)
发生了什么事情?
()
调用(与C#不同,在后者中你使用[]
)。由于向下兼容性,这些括号并不是必需的。你可以调用任何不需要参数的方法而不需要括号。因此你可以使用:Dim s As String = Parameterless
你可以使用(推荐出于以下原因)
Dim s As String = Parameterless()
Parameterless(0)
呢?因为该方法返回一个具有索引器的 String
。因此,如果你想要返回字符串的第一个字符,你可以使用以下方法(建议使用):Dim firstLetter As Char = Parameterless()(0)
Dim firstLetter As Char = Parameterless(0)
Private Function Parameterless() As String
Return "abcd"
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim per As String = Parameterless(1)
TextBox1.Text = per
End Sub
"默认"执行这个技巧
"Public Class User
Default ReadOnly Property Number(i As Integer) As String
Get
If i = 1 Then Return "Mark"
Return "Bob"
End Get
End Property
End Class
Private Function TestFunction () As User
Return New User
End Function
TestFunction(1) 'Mark
TestFunction(2) 'Bob