Ben*_*enM 4 vb.net parameters compiler-errors function
我目前正在使用VB.NET,我遇到了一个问题.这是我的班级:
Public class foo
Private _bar As Integer
Private _name As String
Public Sub New(bar As Integer)
Me._bar = bar
Me._name = getName(bar) '//Passing in an argument where it is not needed
End Sub
Private Function getName() As String
'//Get name from database using _bar as a lookup(it's essentially a primary key)
'//Name is obtained successfully (checked when debugging)
'//Return name
End Function
End Class
Run Code Online (Sandbox Code Playgroud)
尽管传入一个没有参数的getName参数,我仍能运行此代码.但是,当我运行它时,Me._name
字段总是以一个空字符串结束(不是因为它最初开始时为空值)但我知道该getName
方法返回正确的字符串,因为我在调试期间检查了它.如果我删除不需要的参数,那么它按预期工作,Me._name获取返回的值.
为什么我能够在不存在错误列表的情况下传递参数而不会出现任何错误?我在同事的计算机上尝试了这个,他们得到了"太多的参数"错误.
我们可以在VB.NET中调用带或不带括号的函数/ sub,所以这个
getName(bar)
Run Code Online (Sandbox Code Playgroud)
实际上与此相同
getName()(bar)
Run Code Online (Sandbox Code Playgroud)
这就是没有错误的原因.
此外,getName(bar)
不会bar
作为参数传递给getName
函数,但它将返回返回(bar+1)th
值的字符getName()
.
例如,如果我们将getName
功能更改为此
Private Function getName() As String
Return "test"
End Function
Run Code Online (Sandbox Code Playgroud)
然后getName(1)
将是相同的getName()(1)
,它将返回第二个字符"test"
,即"e"
.