.net Lambda表达式引发System.MissingMemberException
我在一个类中定义了一个lambda函数,该类在运行时抛出System.MissingMemberException.net Lambda表达式引发System.MissingMemberException,.net,vb.net,lambda,windows-phone-8.1,.net,Vb.net,Lambda,Windows Phone 8.1,我在一个类中定义了一个lambda函数,该类在运行时抛出System.MissingMemberException Module Res Public Class LAMBDAS Public Shared add1 = Function(num As Integer) num + 1 End Class End Module 当一个学生从另一个班级打电话时 Private Async Sub Butto
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函数吗?我知道这是一篇老文章,但我遇到了一个类似的问题,在修复它之前,我搔了一个小时左右的头 如果在调试器中检查add1的类型,您将看到它是一个对象而不是lambda函数,因此编译器会自动认为您正在尝试索引默认属性,而不是运行一段代码 要解决此问题,您可以执行以下操作:
Module Res
Public Class LAMBDAS
Public Shared add1 As Func(Of Integer) = Function(num As Integer) num + 1
End Class
End Module
当您删除模块但保留LAMBDAS类时,它是否工作?