4
ラムダ関数に基づいてIEqualityComparerを返す拡張メソッドを作成しようとしています。 HERESに拡張メソッド:匿名関数の拡張メソッド
<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
ここでは、私が明示的に入力する機能を割り当てた場合、コンパイラはエラー
'Comparer' is not a member of '<anonymous method>'
を報告
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
、私が探している用法でありますそれを変えることができます:
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
私の質問は、私が私が探しているワンライナースタイルを使用できるように拡張メソッドをタイプすることはできますか?つまり、匿名メソッドを受け入れるために拡張メソッドを入力するにはどうすればいいですか?
これは私が考えていたものですが、私がここに見ていないものがあるかもしれないと考えました。 – Kratz