2008-12-09 14 views
20

¿Es posible crear un delegado en línea en vb.net como lo hace en C#?¿Cómo se hace delegados en línea en vb.net como C#?

Por ejemplo, me gustaría ser capaz de hacer algo en línea como esta:

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

sólo en VB y sin tener que hacer algo como esto

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 

- Editar - Debería haber mencionado que todavía estoy trabajando en .net 2.0, así que no podré usar lambdas.

Respuesta

7

Probar:

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

Esto funciona en 3.5, no está seguro acerca de la sintaxis 2.0.

+0

Bugger! Yo era demasiado lento ... :( – BlackMael

+0

, de hecho, pero tu tipo superior de casting me supera – Shawn

+1

Estrictamente hablando, no es obligatorio, pero para mí es un poco más legible ya que no tengo que pensar en qué es "m" – BlackMael