タイトル : Re: 複数引数を持つデリゲート述語 投稿日 : 2008/04/21(Mon) 19:06 投稿者 : 魔界の仮面弁士
> Genericリストの便利そうなメソッド こういう時には、ラムダ式の出番ですね。 strValue = "AAA" FoundProfile = Contents.Find(Function(p) p.DFP = strValue) > 任意のStringを引数として与えたいのですが VB でも、匿名メソッドが使えれば楽なのですけれどね。 ラムダ式を使わずに実装するなら、 > Return P.DFP = "AAA" の部分を、 Return P.DFP = Me.HogeValue のように、外からプロパティ等で渡されるようにするか、あるいは Dim hogeValue As String = String.Empty RaiseEvent ValueCallBack(hogeValue) Return P.DEP = hogeValue のように、内部からコールバックすることで対応してみては如何でしょう。 Dim FoundProfile As ProfileClass = Contents.Find(ProfileClass.EQCond("AAA")) Public Class ProfileClass Public DFP As String Public Shared Function EQCond(ByVal value As String) As Predicate(Of ProfileClass) Return AddressOf New Condition(value).Equal End Function Private Class Condition Private s As String Friend Sub New(ByVal s As String) Me.s = s End Sub Public Function Equal(ByVal P As ProfileClass) As Boolean Return P.DFP = s End Function End Class End Class |