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 @ Friday, August 1, 2008 8:40 AM

Print

Comments on this entry:

# re: Uguaglianza tra oggetti

Left by fremsoft at 8/1/2008 9:28 AM
Gravatar
Il metodo Equals ti dice se due oggetti "sono lo stesso oggetto"

# re: Uguaglianza tra oggetti

Left by Giancarlo at 8/1/2008 10:29 AM
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 8/1/2008 11:33 AM
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.
«December»
SunMonTueWedThuFriSat
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234