¿Qué método VB6 permite comparar dos objetos personalizados del mismo tipo (definidos en un módulo de clase)? Creo que hay un equivalente al método compareTo de Java, pero no puedo encontrarlo en ningún lado.VB6 Comparación de objetos
Respuesta
Para otros que puede preguntarse sobre la misma pregunta:
Después de mucho mirar alrededor, parece que VB6 no tiene ningún tipo de métodos incorporados compareTo
o equals
, como hace Java.
Olvidé que en Java, compareTo
se define en la interfaz java.lang.Comparable
. Dado que las interfaces están tan rotas en VB6, incluso si usted escribió su propia interfaz Comparable
, tendría que llamar al método Comparable_compareTo
de su objeto, a menos que se haya declarado como Comparable
, lo cual no tiene sentido.
En pocas palabras:. Si quieres compareTo
o equals
métodos en sus clases de VB6, simplemente los puso en
Si por "comparar" quiere decir "son del mismo tipo?", Puede que el TypeName función:
If (object1 <> Nothing) and (object2 <> Nothing) then
If (TypeName(object1) = TypeName(object2)) Then
Debug.Print "object types are the same"
Else
Debug.Print "object types are NOT the same"
End If
End If
Si por "comparar" quiere decir "qué hacen referencia al mismo objeto ? en la memoria", se puede utilizar el operador de Es:
If (object1 Is object2) Then
Debug.Print "objects references are the same"
Else
Debug.Print "objects references are NOT the same"
End If
Lo que quiero decir es que dos instancias de una clase con atributos idénticos deberían ser verdaderas. Naturalmente, podría comparar esos atributos de forma manual, pero pensé que VB6 tenía un método que podía definir dónde ocurriría automáticamente. – derekerdmann
Cuidado: object1 y object2 pueden ser de diferentes tipos pero actualmente resuelven nada. – onedaywhen
@onedaywhen: Buena captura. Supuse que TypeName devolvía el tipo de la variable objeto incluso si estaba configurada en "Nothing", pero en su lugar devuelve "Nothing". Eso complica las cosas. Pongo un cheque en mi código de ejemplo, pero si uno de esos objetos es Nothing, supongo que no es posible hacer una comparación de tipos. – raven
- 1. ¿La comparación de cadenas VB6 es insensible?
- 2. Comparación de objetos
- 3. Comparación de matrices de objetos
- 4. Comparación de dos objetos NSManagedObjects
- 5. Comparación de dos objetos NSNumber
- 6. JavaScript Fecha Comparación de objetos
- 7. Comparación de objetos profundos Delphi
- 8. Comparación de matrices de objetos, forma óptima
- 9. Comparación de matrices de objetos en JavaScript
- 10. Comparación de objetos de datos centrales
- 11. Comparación de objetos ActiveRecord con Rspec
- 12. Comparación de objetos en pruebas unitarias
- 13. Pasando la matriz C# de objetos COM a VB6
- 14. Ejecutando aplicaciones VB6 sin haber instalado VB6
- 15. VB6 Runtime Type Retrieval
- 16. La comparación de objetos JavaScript nativos con jQuery
- 17. OpenCV - Comparación de objetos utilizando descriptores SURF y BruteForceMatcher
- 18. Filtrar una lista de objetos mediante la comparación con otra lista de los diferentes objetos
- 19. VB6: Deshabilitar las variantes
- 20. Learning VB6
- 21. Depuración de IIS7 VB6
- 22. VB6 Implementos y eventos
- 23. ¿Es realmente necesaria la eliminación de objetos/matriz de asignación en VB6/VBA (Pros/Cons?)
- 24. C#: eliminación correcta de objetos C# cuando se creó a través de COM Interop desde VB6
- 25. VB6 Objeto y tipos de datos
- 26. Cómo devuelvo una matriz/lista/colección de objetos desde C# a VB6
- 27. Atributos de comparación LDAP
- 28. GetObject y VB6 ActiveX exe
- 29. Limitaciones de interfaz en VB6
- 30. Regex en VB6?
"dos objetos definidos en un módulo de clase" - ¿Qué quiere decir con "definido"? Solo puedes definir una clase por módulo de clase. Tal vez se refería a "dos objetos instanciados", pero ¿cuál sería la relevancia de dónde se crearon las instancias? – onedaywhen
Estoy trabajando con dos objetos, los cuales son instancias de una sola clase que definí en un módulo de clase. Lo siento, no estaba claro. – derekerdmann
OK, creo que ya veo. Estoy casi seguro de que no hay nada incorporado a VB. Fuera de interés, ¿qué esperarías que ocurriera si uno de los atributos fuera un objeto? ¿Necesitaría llamar a * ese * método compareTo ...? – onedaywhen