Hallo zusammen,
ich habe mal eine Frage zur Switch-Anweisung:
Aus Visual Basic 6 bin ich es gewöhnt bei den verschiedenen Fällen (Cases) die ich mit Select Case abfrage, auch Wertebereiche abfragen zu können.
Das sieht in VB z. B. so aus:
Select Case mFileSize
Case 0 To 999 ' Bytes
FormatFileSize = Format(mFileSize) & " bytes"
Case 1000 To 1023999 ' KB
FormatFileSize = Format(mFileSize / 1024, "##0.0") & " KB"
Case 1024000 To (1024 * 10 ^ 6) - 1 ' MB
FormatFileSize = Format(mFileSize / (1024 ^ 2), "##0.0#") & " MB"
Case Is > (1024 * 10 ^ 6)
FormatFileSize = Format(mFileSize / (1024 ^ 3), "##0.0#") & " GB"
End Select
Ich habe leider keinerlei Beispiele hierzu in C# gefunden. Geht das in C# auch? Wenn ja, kann mir jemand bitte die Syntax posten? Google und die msdn spucken nichts hierzu aus.
Danke!
Hallo hypersurf,
das geht AFAIK nicht in C#
Da baust du dir am Besten ein paar if-Abfragen ein.
Gruss
Michael
kuckst du hier
"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."
Um nochmal zusammen zu fassen was in demondriver235s Link bezüglich deiner Frage steht, hier ein kurzes Beispiel:
switch(bar) {
case 1:
case 2:
case 3:
someMethod();
break;
case 4:
case 5:
someOtherMethod();
break;
default:
someDefaultMethod();
}
Dabei ist zu beachten, dass man nur von einem Case zum nächsten "fallen" kann, wenn dieser keine Ausdrücke beinhaltet. Folgender Code lässt sich dem entsprechend nicht kompilieren.
switch(bar) {
case 1:
someMethod();
case 2:
someOtherMethod();
break;
}
In deinem Fall, hypersurf, würde ich aber auch eher michlGs Vorschlag folgen.