2008-12-09 10 views
20

Czy można utworzyć delegata wbudowanego w vb.net, jak to możliwe w języku C#?Jak zrobić inline delegatów w vb.net jak C#?

Na przykład chciałbym być w stanie coś zrobić inline tak:

myObjects.RemoveAll(delegate (MyObject m) { return m.X >= 10; }); 

tylko w VB i bez konieczności zrobić coś takiego

myObjects.RemoveAll(AddressOf GreaterOrEqaulToTen) 

Private Function GreaterOrEqaulToTen(ByVal m as MyObject) 
    If m.x >= 10 Then 
     Return true 
    Else 
     Return False 
    End If 
End Function 

- Edit - Powinienem wspomnieć, że nadal pracuję w .net 2.0, więc nie będę mógł używać lambdas.

Odpowiedz

7

Spróbuj:

myObjects.RemoveAll(Function(m) m.X >= 10) 

To działa w 3.5, nie wiem o składni 2.0.

+0

robali! Byłem zbyt wolny .. :( – BlackMael

+0

istotnie, ale twój najlepszy typ rzucania mnie atakuje – Shawn

+1

Ściśle mówiąc, nie jest to wymagane, ale dla mnie jest trochę bardziej czytelny, ponieważ nie muszę myśleć o tym, "m" – BlackMael