我正在使用VB.Net來分配一個委託。但是我不想定義一個方法(子)/函數。「單行語句lambdas必須包含一個語句。」爲什麼這個錯誤?
簡單地給Nothing
不起作用,因爲DelegateCommand
會拋出運行時異常,如果Nothing
在Delegate中設置。
那麼,爲什麼我會得到這個錯誤?
"Single Line statements lambdas must include exactly one statement."
下面是代碼
Public Delegate Function DelegateCommand(Of T)(ByVal arg As T) As Boolean
Private _foobar As DelegateCommand(Of Object)
Public ReadOnly Property FooBar() As DelegateCommand(Of Object)
Get
If _foobar Is Nothing Then
_foobar = New DelegateCommand(Of Object)(Sub(), AddressOf OnFooBarCommandExecuted)
End If
Return _foobar
End Get
End Property
Private Function OnFooBarCommandExecuted(ByVal parameter As Object) As Boolean
Return False
End Function
這裏是圖像
難道你不能創建一個不敏感的代碼副本,並顯示它*爲文本*?或者更好的是,創建一個[Minimal,Complete,and Verifiable Example](http://stackoverflow.com/help/mcve)並向我們展示。 –
http://stackoverflow.com/questions/5036549/vb-net-statement-lambdas-cannot-be-converted-to-expression-trees-compile-tim – CodeCaster
@JoachimPileborg:完成。 –