我是 VB.NET 2012 (Visual Studio 2012) 的新手。
我想知道如何理解以下错误消息?
'Return' statement in a Sub or a Set cannot return a value.
重点是“子或集”。
如果有兴趣,我正在尝试通过多种方式打印出消息。
我是 VB.NET 2012 (Visual Studio 2012) 的新手。
我想知道如何理解以下错误消息?
'Return' statement in a Sub or a Set cannot return a value.
重点是“子或集”。
如果有兴趣,我正在尝试通过多种方式打印出消息。
如何理解 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 和函数不同,Sub
s 和Set
ters 不返回值,因此不能包含Return X
语句(它们可以包含过早退出方法而不返回值的裸Return
函数,相当于Exit Sub
or Exit Property
)。
您必须在 a或 a中有一个Return
语句,并且您正在尝试返回一个值。你不能那样做。Sub
Set
Sub Something
Return 1 ' Error
End Sub
如果你需要返回一个值,那么你需要一个函数:
Function Something As Integer
Return 1 ' Ok
End Function
您不能在 Sub 中返回某些内容,但可以在 Function 中返回。
看这里:
http://msdn.microsoft.com/en-us/library/d03wadb1(v=vs.80).aspx
在 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