Sub或Set如何被理解?

时间:2012-11-02 07:48:01

标签: .net vb.net visual-studio

我是VB.NET 2012(Visual Studio 2012)的新手。

我想知道如何理解以下错误消息?

 'Return' statement in a Sub or a Set cannot return a value.

重点是“Sub或Set”。

如果有兴趣,我会尝试通过多种方式打印消息。

4 个答案:

答案 0 :(得分:5)

  

Sub或Set如何被理解?

Sub是没有返回值的方法:

Sub DoSomething()
    …
End Sub

(与Function相比,这是一个带有返回值的方法。)

Set是属性的设置者:

Property X() As String
    Get
        Return SomeValue
    End Get
    Set(Value As String)
        SomeValue = Value
    End Set
End Property

与属性getter和函数不同,SubSet ters不返回值,因此不能包含Return X语句(它们可以包含裸体Return过早退出方法而不返回值,相当于Exit SubExit Property

答案 1 :(得分:0)

你不能在Sub中返回一些东西,但你可以在一个函数中返回。

见这里:

http://msdn.microsoft.com/en-us/library/d03wadb1(v=vs.80).aspx

答案 2 :(得分:0)

在Sub中你可以有一个Return语句,但不是“有值”,即:

Sub MySub()
  Return ' this is OK. It is optional (you do not HAVE to have a Return in a Sub).
End Sub

Sub MySub()
  Return 3 ' this is WRONG
End Sub

在Property_SET中,您无法获得任何Return语句。 (另一方面,在Property_GET中,你必须有一个带有符合属性类型的值的Return语句。

Property MyProperty() As Integer
  Get
    ' do all kinds of stuff
    Return 3 ' Returns as integer-type value
  End Get
  Set(value as Integer)
    ' do stuff
    Return ' WRONG
    Return 3 ' also WRONG
  End Set
End Property

答案 3 :(得分:-1)

您必须在ReturnSub中拥有Set语句,并且您尝试返回一个值。你不能这样做。

Sub Something
    Return 1 ' Error
End Sub

如果您需要返回一个值,那么您需要一个函数:

Function Something As Integer
    Return 1 ' Ok
End Function