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
== nicht direkt angewendet werden.
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
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
statische Methode verwenden. Diese Methoden bieten eine standardisierte Möglichkeit, die Objektgleichheit unabhängig von ihrem Typ zu vergleichen.
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