Vb.net 调用Sub并返回值

Vb.net 调用Sub并返回值,vb.net,visual-studio,Vb.net,Visual Studio,这似乎是一个极其简单的问题,但我似乎在任何地方都找不到答案。我想我在VB方面做得不错,但前几天我在学习javascript时发现了一些看起来很棒的东西,现在我不知道如何在VB中实现它 在javascript中,它如下所示: var someValue=gethatValue() 它调用和设置getHatValue()子函数中的值。VB的等价物是什么 编辑 我试过这样做: private sub main() dim value = getValue() 'do

这似乎是一个极其简单的问题,但我似乎在任何地方都找不到答案。我想我在VB方面做得不错,但前几天我在学习javascript时发现了一些看起来很棒的东西,现在我不知道如何在VB中实现它

在javascript中,它如下所示:

var someValue=gethatValue()

它调用和设置getHatValue()子函数中的值。VB的等价物是什么


编辑 我试过这样做:

   private sub main()
       dim value = getValue()
       'do something with value
   end sub

   private sub getValue()
       return 3
   end sub

这似乎不起作用,我如何才能让它起作用?

您应该使用一个属性:

Private Sub Main()
    Dim value = getValue()
    'do something with value
End Sub

Private Function getValue() As Integer
    Return 3
End Function
Private _myValue As String
Public Property MyValue As String
    Get
        Return _myValue
    End Get
    Set(value As String)
        _myValue = value
     End Set
End Property
然后像这样使用它:

MyValue = "Hello"
Console.write(MyValue)

Sub
不返回值,
函数
s没有副作用

有时,您需要副作用和返回值

一旦您知道VBA默认通过引用传递参数,就很容易做到这一点,这样您就可以用以下方式编写代码:

Sub getValue(retValue as Long)
    ...
    retValue = 42 
End SUb 

Sub Main()
    Dim retValue As Long
    getValue retValue 
    ... 
End SUb

在VB中,返回值的方法称为函数。不返回值的方法称为Sub。当然,VB.NET现在有自动属性,所以一行
公共属性MyValue作为字符串就足够了。当然可以,但最好知道它到底在做什么,因为你不能一直使用快捷方式。如果你想改变设置为一个不同的修饰符,比如Private。快捷方式本质上是为您编写上述代码。