„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wann versagt C#'s == Operator und wie können Sie damit umgehen?

Wann versagt C#'s == Operator und wie können Sie damit umgehen?

Gepostet am 2025-03-23
Durchsuche:508

When Does C#'s == Operator Fail and How Can You Handle It?

Equal Sign (==) Operator in C#: Wann scheitert es und wie man mit

]] Der Operator

== in c# ist sehr bequem, um die Gleichheit zweier Objekte zu vergleichen. Obwohl der Operator == im Allgemeinen mit allen Typen arbeitet, ist er in einigen Fällen unbrauchbar.

Ein Beispiel ist es, nicht eingeschränkte generische Typen zu vergleichen. Der Code -Snippet in der Frage bool vergleiche (t x, t y) {return x == y; Wenn es keine Einschränkungen für t gibt, kann der Typ ein Werttyp sein. In diesem Fall kann der Operator == nicht direkt angewendet werden.

Zum Beispiel sind die

float die Operatoren nicht vordefiniert . Sie verwenden die Equals Methode zum Wertvergleich. Auf der anderen Seite haben Referenztypen wie string vordefiniert == Operatoren zum Überprüfen von Objektreferenzen. Ohne Einschränkungen auf T kann der Compiler nicht bestimmen, ob der Operator == für den Referenztyp oder die

Equals

Methode des Werttyps vordefiniert ist. Um dies zu lösen, muss T auf einen Referenztyp beschränkt werden. Nehmen Sie nun an, Sie bezeichnen den Typ als Typparameter. In diesem Fall wird der Operator == mithilfe von vordefinierten Referenzen und nicht mit einer überlasteten Version des Bedieners verglichen. Dies liegt daran, dass vordefinierte Zitiervergleiche als grundlegender und zuverlässiger angesehen werden.

Wenn Sie nicht genügend Informationen zu Typparametern haben, können Sie die Interface iequalityComparer oder die

EqualityComparer .Default

statische Methode verwenden. Diese Methoden bieten eine standardisierte Möglichkeit, die Objektgleichheit unabhängig von ihrem Typ zu vergleichen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3