我在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。为什么我会在返回类型上出错?
答案 0 :(得分:2)
由于您的匿名方法没有返回值,因此您需要使用Sub
而不是Function
。