加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – 匿名函数的扩展方法

发布时间:2020-12-17 07:12:54 所属栏目:百科 来源:网络整理
导读:我正在尝试创建一个基于lambda函数返回IEqualityComparer的扩展方法.下面是扩展方法: Extension()Public Function Comparer(Of T)(Func As Func(Of T,T,Boolean)) As IEqualityComparer(Of T) Return New GenericComparer(Of T)(Func)End Function 这是我正
我正在尝试创建一个基于lambda函数返回IEqualityComparer的扩展方法.下面是扩展方法:

<Extension()>
Public Function Comparer(Of T)(Func As Func(Of T,T,Boolean)) As IEqualityComparer(Of T)
    Return New GenericComparer(Of T)(Func)
End Function

这是我正在寻找的用法,

Dim CICF = (Function(a As String,b As String) As Boolean
                   If a.ToUpper = b.ToUpper Then
                       Return True
                   Else
                       Return False
                   End If
            End Function).Comparer

编译器报告错误

'Comparer' is not a member of '<anonymous method>'

如果我将函数分配给显式类型变量,它可以工作,如下所示:

Dim CICF As Func(Of String,String,Boolean) = (Function(a As String,b As String) As Boolean
                                                            If a.ToUpper = b.ToUpper Then
                                                                Return True
                                                            Else
                                                                Return False
                                                            End If
                                                        End Function)

        Dim CIC = CICF.Comparer

所以我的问题是,我可以用一种方式输入扩展方法,让我使用我正在寻找的单行样式吗?这就是说,我如何键入扩展方法来接受匿名方法?

解决方法

坦率地说,我不认为这是可能的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读