用作参数时,无法推断Action委托的返回类型

时间:2014-03-14 15:58:07

标签: c# .net vb.net

我在VB.NET中有以下方法:

Private Sub DelegateTest(ByVal doSomething As Action(Of TrimEntry))
    doSomething(New TrimEntry())
End Sub

以下尝试调用该方法会导致编译时错误无法推断返回类型。请考虑添加“As”子句以指定返回类型。。 (为简洁起见,我省略了一些代码,但我的调用需要多行代码。)

DelegateTest(Function(item)
                 item.Length = 0
             End Function)

也许我被C#宠坏了,但它在C#中非常简单。

DelegateTest(item => { item.Length = 0; })

问题为什么发生此错误?我很困惑,因为类型是一个Action委托,它返回void。为什么我会在返回类型上出错?

1 个答案:

答案 0 :(得分:2)

由于您的匿名方法没有返回值,因此您需要使用Sub而不是Function