2008-12-09 6 views
20

Est-il possible de créer un délégué inline dans vb.net comme vous le pouvez dans C#?Comment faites-vous les délégués en ligne dans vb.net comme C#?

Par exemple, je voudrais être en mesure de faire quelque chose en ligne comme celui-ci:

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

seulement en VB et sans avoir à faire quelque chose comme ça

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 

- modifier - J'aurais dû mentionner que je travaille toujours en .net 2.0 donc je ne serai pas capable d'utiliser lambdas.

Répondre

7

Essayez:

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

Cela fonctionne en 3.5, pas sûr de la syntaxe 2.0.

+0

enculer! J'étais trop lent .. :( – BlackMael

+0

en effet mais votre casting de type supérieur m'emporte – Shawn

+1

Strictement parlant ce n'est pas obligatoire mais pour moi, c'est un peu plus lisible car je n'ai pas à penser à ce que "m" est – BlackMael

Questions connexes