【发布时间】:2015-01-13 18:50:17
【问题描述】:
在 VB 中我可以这样做:
Dim a = New Action(Of String)(
Sub()
Debug.Print("Hello World.")
End Sub)
但在 C# 中我不能这样做,这对我来说很有意义,因为 lambda 定义应该匹配委托:
var a = new Action<string>(() =>
{
System.Diagnostics.Debug.Print("Hello World.");
});
我不能在 VB 中做到这一点,这是有道理的。
Dim a = New Action(
Sub(x As String)
Debug.Print("Hello World.")
End Sub)
那么,为什么 VB 允许提供一个不带参数但似乎与委托不兼容的 lambda 表达式的异常情况?
【问题讨论】:
-
Options Strict开启了吗? -
@JohnSaunders -- 是的。
标签: c# vb.net lambda delegates