Differenza tra == operatore e pari metodo in C#?

Differenza tra == operatore e pari metodo in C#?
C# è un linguaggio di programmazione orientato agli oggetti ampiamente utilizzato che consente la creazione di applicazioni desktop, web e mobili. Uno dei concetti fondamentali in C# è il confronto dei valori, che prevede la determinazione se due valori sono uguali usando operatori e procedure.

In C# ci sono due opzioni primarie per confrontare due valori: il "==" operatore e il "Equivale()" metodo. Tuttavia, queste due alternative differiscono nella loro implementazione e utilizzo.

L'opportunità == operatore

Per determinare se due variabili sono uguali, usa il Operatore “==”. Offre un confronto più sofisticato perché sembra vedere se due elementi condividono lo stesso riferimento e lo stesso valore. Ciò significa che anche se due oggetti possono avere lo stesso valore, non saranno trattati allo stesso modo se hanno riferimenti distinti.

In c#, il Operatore “==” è un operatore integrato che può essere utilizzato per confrontare i tipi di riferimento e i tipi primitivi (come INT, Double, Float e Bool). Classi e strutture possono anche sovraccaricare l'operatore per offrire una logica di confronto unica in base allo stato interno degli oggetti.

Il metodo uguali ()

IL "Equivale()" Metodo in C# è un metodo virtuale che confronta due oggetti dello stesso tipo per determinare se hanno lo stesso valore o contenuto. Questo metodo può essere utilizzato per confrontare due stringhe con lo stesso valore che sono memorizzati in diverse posizioni di memoria.

Il metodo "equals ()" in C#, per impostazione predefinita, contrasta i riferimenti degli oggetti rispetto ai loro valori. Ciò implica che due oggetti con gli stessi valori ma riferimenti distinti non sarebbero considerati uguali per impostazione predefinita. Per confrontare gli oggetti in base ai loro valori, il "Equivale()" Il metodo deve essere annullato nella classe.

Come utilizzare == operatore e uguals () in c#

Ecco un esempio in C# che si differenzia chiaramente "==" Operatore e Equivale() Metodo:

usando il sistema;
Spazio Names Paragisonexample
Programma di classe
statico void main (string [] args)
stringa str1 = "linuxhint";
stringa str2 = str1;
Console.WriteLine ("Utilizzo di equals () Metodo: 0", str1.Equals (STR2));
Console.WriteLine ("Uso == Operatore: 0", str1 == Str2);
Console.ReadKey ();


Nel codice sopra, vengono create due stringhe, STR1 e STR2 e STR2 viene assegnata l'assegnazione di essere un riferimento a STR1. L'uguaglianza di entrambe le stringhe viene quindi verificata usando il Equivale() metodo e il Operatore “==”, e i risultati sono output. Poiché entrambe le variabili corrispondono allo stesso oggetto stringa in memoria, entrambi i metodi restituiscono vero.

Produzione

IL Operatore “==” e il Equivale() funzione trattare i valori null in modo diverso. Se entrambe le variabili sono nulle, il Operatore “==” può essere utilizzato per confrontare i valori null e restituire vero. Ma, se una delle variabili è nulla, il Metodo equals () può sollevare a NullreferenceException. Ciò significa che per evitare l'eccezione durante l'utilizzo del Metodo equals (), È necessario assicurarsi che nessuna variabile sia nulla o esegui un controllo nullo.

Conclusione

La differenza chiave tra il Operatore “==” e il Funzione equals () In C# è la loro logica di confronto. IL Funzione equals () confronta il valore di due variabili o oggetti, mentre il Operatore “==” confronta il valore e il riferimento di due. Inoltre, mentre il Operatore “==” è un operatore integrato che non può essere sovrascritto, il Funzione equals () consente alle singole classi di offrire una logica di confronto specifica. Infine, differiscono nel modo in cui trattano i valori nulli; IL Metodo equals () solleva un'eccezione se una qualsiasi delle variabili è nullo.