If Syntax verkürzen?
-
Hallo,
ich suche nach eine Möglichkeit den If Syntax zu verkürzen.
Hier ein Beispiel, statt:if ((Drive.DriveType == DriveType.Fixed) || (Drive.DriveType == DriveType.Removable ))
sowas hier:
if (Drive.DriveType == ( DriveType.Fixed | DriveType.Removable ))
Leider funktioniert mein obriges Beispiel nicht. Es lässt sich zwar Kompilieren aber bei der Ausführung geht er nicht in die If Bedingung rein wenn der DriveType = Removable ist.
Ich denke so, oder so ähnlich müsste der Syntax lauten.
Vielleicht könnt ihr mir ja auf die Sprünge helfen.
Beste GrüßeEDIT: Natürlich meinte ich ||
-
Geht nicht (falls du im oberen Code || statt && meintest).
-
Nein, das geht so nicht. Schreib es einfach aus. Btw, deine erste Code-Zeile macht so keinen Sinn. Du meintest ||, oder? Und in der zweiten Zeile nutzt du bitweises OR. Denk mal drüber nach, wie der Ausdruck ausgewertet wird.
-
_matze schrieb:
Nein, das geht so nicht. Schreib es einfach aus. Btw, deine erste Code-Zeile macht so keinen Sinn. Du meintest ||, oder? Und in der zweiten Zeile nutzt du bitweises OR. Denk mal drüber nach, wie der Ausdruck ausgewertet wird.
ein einzelnes | ist eine bitweises OR ?
Gut zu wissen, dann kann es ja auch schlecht funktionieren.Aber gibt es sonst keine andere Möglichkeit das kürzer zu schreiben?
-
teddds schrieb:
Aber gibt es sonst keine andere Möglichkeit das kürzer zu schreiben?
Nö.
Und gewöhne dich schonmal daran.
Es gibt für 1000 Dinge keine Möglichkeit sie "schön kurz" zu schreiben.
-
public bool IsFixedOrRemovable(DriveType driveType) { return driveType == DriveType.Fixed || driveType == DriveType.Removable; } // ... if(IsFixedOrRemovable(Drive.DriveType)) { // ... } // ...
Nur so als Idee
Grüssli
-
Draveres Code kam mir direkt in den Sinn als ich das erste Posting las