viernes, 28 de marzo de 2014

vb. olist.ForEach

La chorra del dia de hoy , situación .net vb.



Public Class miclase
    Private m_visible As Boolean
    Public Property EsVisible() As Boolean
        Get
            Return m_visible
        End Get
        Set(ByVal value As Boolean)
            m_visible = value
        End Set
    End Property
End Class
Dim olist As List(Of miclase) = Rellenarlista()
'La lista se rellena con elementos todos con EsVisible =True
'---Desde debug olist (0).EsVisible =True
'Quiero que todos se pongan con EsVisible =False
olist.ForEach(Function(x) x.EsVisible = False)
'---Desde debug olist (0).EsVisible =True otra Vez


Por qué??


No hay forma de llamar a property x.EsVisible(False). VB no está distinguiendo entre el = de comparación y el de asignación.
Pero hay una solución :


olist.ForEach(Sub(x) x.EsVisible = False)


Con esto ya funciona como queria

No hay comentarios:

Publicar un comentario