https://foro.gambas-es.org/viewtopic.php?f=1&t=5346
-----------------------------------
Invitado
Sabado, 09 Abril 2016, 16:58

Equals() En Gambas3
-----------------------------------
Muy buenos dias compañeros, les queria hacer una consulta, alguien ha programado la función Equals() para comparar objetos en Gambas3? he estado leyeno sobre la clase Object en Gambss3 y me di cuenta que no viene incorporada, la trate de hacer a mano pero creo que me confundí un poco la sintaxis de Visual Basic y la de Gambas, en VB.net hay un objeto llamado TypeOf que nos permite saber de que tipo es un objeto, pero creo que el TypeOf de Gambas no devuelve un Bool sino que un entero jaja estoy un poco confundido, si alguien puede darme una mano le estaría agradecido, saludos a todos.

Dejo como ejemplo como es la función en .NET

    Public Overrides Function Equals(obj As Object) As Boolean
        Dim valido As Boolean = False
        If TypeOf obj Is Estudiante Then
            Dim estudiante As Estudiante
            estudiante = DirectCast(obj, Persona)
            If estudiante.Codigo() = Me.Codigo()
                valido = True
            End If
        End If
        Return valido
    End Function


-----------------------------------
vicr
Sabado, 09 Abril 2016, 21:04

Re: Equals() En Gambas3
-----------------------------------
Si la idea es saber si dos objetos son iguales no deberías usar método especial " _compare "

Dicho esto desde la comodidad de la teoría. :-)


-----------------------------------
shordi
Sabado, 09 Abril 2016, 21:53

Re: Equals() En Gambas3
-----------------------------------
Typeof devuelve un entero que corresponde con una constante de gambas
gb.null
gb.integer
gb.short,
gb.string
etc etc


-----------------------------------
Invitado
Sabado, 09 Abril 2016, 23:13

Re: Equals() En Gambas3
-----------------------------------
[quote user="shordi" post="31617"]Typeof devuelve un entero que corresponde con una constante de gambas
gb.null
gb.integer
gb.short,
gb.string
etc etc[/quote]

Es interesante saberlo, en pocas palabras no se comporta igual, voy a seguir buscando, muchas gracias.


-----------------------------------
vuott
Sabado, 09 Abril 2016, 23:38

Re: Equals() En Gambas3
-----------------------------------
[quote user="shordi" post="31617"]Typeof devuelve un entero que corresponde con una constante de gambas
gb.null
gb.integer
gb.short,
gb.string
etc etc[/quote]
Solo para añadir, a lo que escribió el amigo [i]shordi[/i], que el entero devuelto es uno de los "[i]Gambas datatypes identifiers[/i]" contenidos en el fichero fuente [i]/....../main/share/gambas.h[/i], y en las [i]enum[/i] del fichero fuente [i]/......./main/share/gb_type_common.h[/i] .



Curiosidad:
Es posible obtener el entero, que representa en Gambas el [i]tipo[/i] de valor, tambien con este codigo:
[code linenumbers=false syntax=gambas]Public Sub Main()

  Dim bo As Boolean
  Dim p As Pointer
    
    p = VarPtr(bo)
    
    Print Byte@(p - 8)     ' ...muy probable que con sistemas de 32-bit el numero sea 4

End[/code]


Saludos


-----------------------------------
Invitado
Domingo, 10 Abril 2016, 14:59

Re: Equals() En Gambas3
-----------------------------------
[quote user="vuott" post="31620"][quote user="shordi" post="31617"]Typeof devuelve un entero que corresponde con una constante de gambas
gb.null
gb.integer
gb.short,
gb.string
etc etc[/quote]
Solo para añadir, a lo que escribió el amigo [i]shordi[/i], que el entero devuelto es uno de los "[i]Gambas datatypes identifiers[/i]" contenidos en el fichero fuente [i]/....../main/share/gambas.h[/i], y en las [i]enum[/i] del fichero fuente [i]/......./main/share/gb_type_common.h[/i] .



Curiosidad:
Es posible obtener el entero, que representa en Gambas el [i]tipo[/i] de valor, tambien con este codigo:
[code linenumbers=false syntax=gambas]Public Sub Main()

  Dim bo As Boolean
  Dim p As Pointer
    
    p = VarPtr(bo)
    
    Print Byte@(p - 8)     ' ...muy probable que con sistemas de 32-bit el numero sea 4

End[/code]


Saludos[/quote]

Muchas gracias che!, admiro mucho el buen compañerismo que hay en esta comunidad, siempre que hago una pregunta hay alguien dispuesto a compartir sus conocimientos, un saludo grande a todos.


