![]() |
C# gleich/ungleich Operatoren
Hi,
weiß jemand von Euch ob die Gleich- (==) und Ungleich-Operatoren (!=) in C# (und in jeder Plattform-Version) unabhängig behandelt werden? Also gibt es einen Unterschied zwischen Code:
if (!(x==x)) { Code:
if (x!=x) { Die Frage ist letztendlich, ob man in C# die Anweisung nach der if-Abfrage erreichen kann: Code:
if (x==x && x!=x) { |
Mich entzieht zwar der Sinn Deiner Frage, aber keiner der Codeschnipsel wird die Funktion do_something erreichen da immer x==x ist. Einzige Ausnahme wäre beim Shadowing, wo x != x sein kann.
|
Zitat:
Und doch, do_something ist erreichbar. Meine eigentliche Frage betrifft aber die Operatoren und ob das bei allen C#-Versionen/.NET-Frameworks gleich ist. |
Operatorenbehandlung ist seit der Einführung von C# gleichgeblieben. Du kannst also darauf vertrauen, egal unter welcher .NET-Version Du Dein Projekt kompilierst das die Operatoren gleich funktionieren.
Edit: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] |
Die Frage ist aber ob
Code:
(!(1==1)) Code:
(1!=1) Mit meinem Klassentyp soll es möglich sein, dass eine Anweisung nach if (x==x && x!=x) erfolgen kann... Code:
CryptoObject crpt = new CryptoObject(Crypto_Steel); |
Nein, == und != sind arithmetische Vergleichsoperatoren, während ! ein unärer Operator ist.
! dreht einfach den booleschen Wert um. Aus true wird false und umgekehrt. Überlädst Du aber bsw. die Vergleichsoperatoren == und != dann gibt es ein Spezialfall, wo ! ein unerwartetes Ergebnis bringt. Code:
public static bool operator==(object obj1, object obj2) |
Danke!
Genau das wollte ich wissen! Komm mit MS-Technologien eher selten in Berührung. |
Irre. :unibrow:
|
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.