gpt4 book ai didi

vb.net - 能够将参数传递给没有参数的函数

转载 作者:行者123 更新时间:2023-12-04 23:22:04 25 4
gpt4 key购买 nike

我目前正在使用 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

尽管向 getName 传递了一个没有参数的参数,但我仍然能够运行此代码。但是,当我运行它时, Me._name字段总是以空字符串结束(不是最初开始时的空值)但我知道 getName方法返回正确的字符串,因为我在调试期间检查过它。如果我删除不需要的参数,那么它会按预期工作并且 Me._name 获取返回值。

为什么我能够在不应该存在的地方传递一个参数,并且在我的错误列表中没有出现任何错误?我在同事的电脑上试过这个,他们得到了“参数太多”的错误。

最佳答案

我们可以在 VB.NET 中调用带括号或不带括号的函数/子,所以这

getName(bar)

实际上和这个一样
getName()(bar)

这就是为什么没有错误的原因。

此外, getName(bar)不会通过 bar作为 getName 的参数函数,但它会返回 (bar+1)th getName() 返回的值的字符.

例如,如果我们更改 getName功能到此
Private Function getName() As String
Return "test"
End Function

然后 getName(1)将与 getName()(1) 相同它将返回 "test" 的第二个字符, 即 "e" .

关于vb.net - 能够将参数传递给没有参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21626761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com