当作为参数使用时,无法推断操作委托的返回类型

本文关键字:操作 返回类型 参数 | 更新日期: 2023-09-27 17:50:14

我在VB中有以下方法。净:

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。为什么返回类型会出现错误?

当作为参数使用时,无法推断操作委托的返回类型

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