我不知道这是否有多大意义,我只是在试验一些东西来扩展我的知识(这并不多)。
是否可以将Lambda
表达式存储到变量中以供以后使用?
这是我尝试过的:
Private t As Thread = New Thread(ThreadLambda)
Dim ThreadLambda As Expressions.LambdaExpression = _
Sub()
If tb2.InvokeRequired Then
tb2.BeginInvoke(Sub() tb2.Text = tb1.Text)
Else
tb2.Text = tb1.Text
End If
End Sub
这将启动此异常:
Lambda 表达式无法转换为“System.Linq.Expressions.LambdaExpression”,因为“System.Linq.Expressions.LambdaExpression”不是委托类型。
更新:
我正在尝试遵循@大师灯西欢的指示,但是这个类给了我一个编译器异常InvalidOperationException
,它说值不能为空(什么值!?)
Public Class Form1
Private t As Threading.Thread = New Threading.Thread(ThreadLambda)
Dim ThreadLambda As Threading.ThreadStart = _
Sub()
For x = 0 To 10 : Debug.WriteLine("test") : Next
End Sub
End Class