Uguaglianza tra oggetti

Forse scrivo una banalità ma a me che vengo dal modo VB6 non ad oggetti mi aveva tratto in inganno.

In un programma devo verificare se due valori di sue oggetti sono uguali usavo "="... ma ora... confrontando proprietà di oggetti a volte queste proprietà sono "nothing" e il risultato non è più corretto.

Sono passato ad un più sicuro

(a.proprietà, b.proprietà) dove "a" e "b" sono due oggetti dello stesso tipo.

Un link ufficiale? Eccolo

Sbaglio?

Technorati Tag: ,

posted @ venerdì 1 agosto 2008 11:40

Print

Comments on this entry:

# re: Uguaglianza tra oggetti

Left by fremsoft at 01/08/2008 12:28
Gravatar
Il metodo Equals ti dice se due oggetti "sono lo stesso oggetto"

# re: Uguaglianza tra oggetti

Left by Giancarlo at 01/08/2008 13:29
Gravatar
l'uguale, anche in vb6, poteva essere utilizzato per verificare l'uguaglianza di variabile sullo stack (quelli passati per valore); che io ricordi anche in vb6 non aveva senso utilizzarlo per confrontare oggetti (veniva fatto il confronto tra i reference degli oggetti e non le property degli oggetti stessi).
In c# è la stessa cosa; di default anche equals confronta i reference non le properties; puoi però fare l'override di quel metodo per fargli confrontare le properties che ti permettono di definire che due istanze di una classe sono uguali secondo il tuo criterio

# re: Uguaglianza tra oggetti

Left by Simone at 01/08/2008 14:33
Gravatar
Esatto...
per farsì che l'Equal faccia il confronto sul contenuto devi implementare IEquitable<T> o basta overridare il metodo Equals.
Con le string funziona già xè ha già l'override che confronta il contenuto
Comments have been closed on this topic.
«ottobre»
domlunmarmergiovensab
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789