.NET 4.x lambda在编译后会在3.5(及更低版本)下工作吗?

时间:2016-02-06 18:43:35

标签: .net vb.net lambda backwards-compatibility

我正在开发一个面向.NET Framework 4.0的应用程序。我的应用程序主要使用lambdas来安全地引发事件,我希望它与旧的.NET Framework版本兼容。我知道.NET 3.5中不支持Sub() lambda(例如)...或者至少在编译期间不支持。

但是在编译应用程序之后呢? lambda是否在IL中重写,以便它可以在.NET 3.5(及更低版本)中运行,还是仅限于.NET 4.x?

我的一种方法示例:

Private Sub ThreadSafeRaise_ConnectionResponseReceived(ByVal sender As Object, ByVal e As FFTEvents.ConnectionResponseReceivedEventArgs)
    If OwnerForm.InvokeRequired = True Then
        OwnerForm.Invoke(Sub() ThreadSafeRaise_ConnectionResponseReceived(sender, e)) 'Will this work in .NET 3.5 after compilation?
    Else
        RaiseEvent ConnectionResponseReceived(sender, e)
    End If
End Sub

0 个答案:

没有答案