Forskjell mellom == operatør og lik metode i C#?

Forskjell mellom == operatør og lik metode i C#?
C# er et mye brukt objektorientert programmeringsspråk som muliggjør oppretting av skrivebords-, nett- og mobilapplikasjoner. Et av de grunnleggende konseptene i C# er sammenligningen av verdier, som innebærer å bestemme om to verdier er like ved bruk av operatører og prosedyrer.

I C# er det to primære alternativer for å sammenligne to verdier - “==” operatør og "Er lik()" metode. Imidlertid er disse to alternativene forskjellige i implementering og bruk.

Likestillingen == Operatør

For å avgjøre om to variabler er like, bruk “==” -operatøren. Det tilbyr en mer sofistikert sammenligning fordi den ser ut til å se om to elementer har samme referanse så vel som samme verdi. Dette betyr at selv om to objekter kan ha samme verdi, vil de ikke bli behandlet likt hvis de har forskjellige referanser.

I C#, The “==” -operatøren er en innebygd operatør som kan brukes til å sammenligne referansetyper og primitive typer (som Int, Double, Float og Bool). Klasser og strukturer kan også overbelaste operatøren for å tilby unik sammenligningslogikk basert på objektets interne tilstand.

Equals () -metoden

De "Er lik()" Metode i C# er en virtuell metode som sammenligner to objekter av samme type for å bestemme om de har samme verdi eller innhold. Denne metoden kan brukes til å sammenligne to strenger med samme verdi som er lagret på forskjellige minneplasser.

"Equals ()" -metoden i C#, som standard, kontrasterer objektreferanser i motsetning til deres verdier. Dette innebærer at to objekter med de samme verdiene, men distinkte referanser ikke vil bli ansett som like som standard. For å sammenligne objekter basert på deres verdier, "Er lik()" Metoden må overstyres i klassen.

Hvordan bruke == operatør og lik () metode i C#

Her er et eksempel i C# som tydelig differensierer “==” Operatør og Er lik() Metode:

ved hjelp av system;
namespace sammenligningseksample
Klasseprogram
statisk tomrom Main (String [] args)
String str1 = "linuxhint";
streng str2 = str1;
Konsoll.WritLine ("Bruke Equals () -metode: 0", STR1.Lik (str2));
Konsoll.WritLine ("Bruker == operatør: 0", str1 == str2);
Konsoll.Readkey ();


I koden ovenfor opprettes to strenger, Str1 og STR2, og Str2 får tildelingen av å være en referanse til STR1. Likheten mellom begge strengene blir deretter sjekket ved hjelp av Er lik() metode og “==” -operatøren, og resultatene sendes ut. Siden begge variablene tilsvarer det samme strengobjektet i minnet, returnerer begge metodene sanne.

Produksjon

De “==” -operatøren og Er lik() funksjon behandler nullverdier annerledes. Hvis begge variablene er null, er det “==” -operatøren kan brukes til å sammenligne nullverdier og returnere sant. Men hvis en av variabelen er null, er det Lik () -metode kan heve en NullReferenceException. Dette betyr at for å forhindre unntaket mens du bruker Lik () -metode, Du må sørge for at ingen av variabelen er null eller utfører en nullsjekk.

Konklusjon

Den viktigste forskjellen mellom “==” -operatøren og Lik () funksjon I C# er sammenligningslogikken deres. De Lik () funksjon sammenligner verdien av to variabler eller objekter, mens “==” -operatøren sammenligner verdien og referansen til to. I tillegg, mens “==” -operatøren er en innebygd operatør som ikke kan overstyres, Lik () funksjon lar individuelle klasser tilby spesifikk sammenligningslogikk. Til slutt er de forskjellige i hvordan de behandler nullverdier; de Lik () -metode reiser et unntak hvis noen av variablene er null.