我在类中定义了一个lambda函数,它在运行时抛出System.MissingMemberException。
Module Res
Public Class LAMBDAS
Public Shared add1 = Function(num As Integer) num + 1
End Class
End Module
当从另一个班级打电话时
Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim r = LAMBDAS.add1(12)
End Sub
抛出异常
发生了'System.MissingMemberException'类型的异常 MICROSOFT.VISUALBASIC.NI.DLL但未在用户代码中处理
其他信息:找不到类型的默认成员 'VB $ AnonymousDelegate_1(整数,整数)'。
但是,如果我将lambda包含在第二个类中,它可以正常工作。
Dim add1 = Function(num As Integer) num + 1
Dim r = add1(12)
是否无法在其他模块和类中添加lambda函数?
答案 0 :(得分:0)
我知道这是一个很老的帖子,但是我有一个类似的问题让我在修理它之前刮了一个小时左右。
如果你在调试器中检查add1的类型,你会发现它是一个对象而不是一个lambda函数,所以编译器会自动认为你试图索引一个默认属性而不是运行一段代码。
要解决此问题,您可以执行以下操作:
Module Res
Public Class LAMBDAS
Public Shared add1 As Func(Of Integer) = Function(num As Integer) num + 1
End Class
End Module