3

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

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

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

重点是“子或集”。

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

4

4 回答 4

6

如何理解 Sub 或 Set?

ASub是一个没有返回值的方法:

Sub DoSomething()
    …
End Sub

(与 a 不同Function,它是一个有返回值的方法。)

ASet是属性的设置器:

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

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

于 2012-11-02T07:57:27.963 回答
0

您必须在 a或 a中有一个Return语句,并且您正在尝试返回一个值。你不能那样做。SubSet

Sub Something
    Return 1 ' Error
End Sub

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

Function Something As Integer
    Return 1 ' Ok
End Function
于 2012-11-02T07:50:34.960 回答
0

您不能在 Sub 中返回某些内容,但可以在 Function 中返回。

看这里:

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

于 2012-11-02T07:54:19.930 回答
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
于 2012-11-02T08:05:28.980 回答