Kontrollstatements in C#
Geschrieben von: Christoph Wille In diesem Artikel möchte ich die beiden C# ("C Sharp") Kontrollstatements if und switch vorstellen, und zwar mit besonderem Fokus darauf, was man als VBScript Programmierer beachten muß, um nicht in Fallen zu tappen. Wer bereits C++ oder JScript programmiert hat, wird die neuen if und switch Statements sehr einfach erlernen können, da sie beinahe ident zu den bereits erlernten sind. Voraussetzung um den Sourcecode dieses Artikels verwenden zu können ist eine Installation des Microsoft .NET Framework SDK's auf einem Webserver. Weiters setze ich voraus, daß der Leser bereits eine Programmiersprache beherrscht - deshalb ist die Information auch in sehr komprimierter Form gehalten. Das if StatementSchauen wir uns einmal das If Statement in VBScript nochmals an: If (Boolscher Ausdruck) Then ... Else ... End If Ich habe einen boolschen Ausdruck, der bestimmt, welcher Zweig des If Statements ausgeführt. In C# sieht das Ganze nicht viel anders aus: if (Boolscher Ausdruck) statement Der Unterschied ist, daß das if-Keyword in Kleinbuchstaben zu schreiben ist (C# ist Case-Sensitive!), und daß das Then Keyword fehlt. Sollen mehrere Statements in einem if Block ausgeführt werden, so muß man diesen Block in geschwungenen Klammern einschließen: if (Boolscher Ausdruck) { } C++ Programmierer kennen das ja schon - alle Codeblocks müssen in geschwungenen Klammern eingeschlossen werden. Wenn man die geschwungenen Klammern vergisst, dann wird nur das erste Statement ausgeführt. Also aufpassen! Kommen wir nun zu einem praktischen Beispiel - wir bauen eine ASP.NET Seite, lesen einen Querystringparameter aus, und geben je nach Wert eine entsprechende Meldung aus: <% @Page Language="C#" %> <% string strQString = Request.QueryString.Get("TestParam"); int nValue = Convert.ToInt32(strQString); if (5 == nValue) { Response.Write("Sie haben die Zahl 5 eingegeben!"); } else { Response.Write("Die Zahl ist verschieden von 5!"); } %> Speichern Sie diese Datei unter dem Namen iftest.aspx auf dem Webserver, auf dem Sie das .NET Framework installiert haben. Der Aufruf sieht wie folgt aus: http://localhost/iftest.aspx?TestParam=5 Sollten Sie vergessen, die Seite mit dem Parameter aufzurufen, dann wird automatisch der Wert 0 angenommen, weil an Convert.ToInt32 ein null Objekt übergeben wird. In der ersten Zeile definiere ich, daß ASP.NET diese Seite mit C# kompilieren soll (@Page Direktive). Danach lese ich den Parameter TestParam ein, weise das Ergebnis einer Stringvariablen zu, um es dann in der nächsten Zeile in eine Integervariable zu konvertieren (Details dazu in späteren Artikeln). Man könnte zwar mit dem Typ object dieser Konvertierung entgehen, allerdings sollte man sich das gar nicht erst anfangen. Das if Statement ist nicht kompliziert, nur speziell hinweisen muß ich auf den Vergleichoperator ==. In C# wird der Vergleich mit doppelten Ist-Gleich Zeichen durchgeführt, nicht mit einem einfachen wie in VBScript! Folgende Vergleichsoperatoren gilt es zu beachten:
Der Rest ist bereits bekannt aus VBScript. Wie sieht es nun aber aus, wenn man UND beziehungsweise ODER Verknüpfungen machen möchte? Zum Beispiel (Pseudocode) Falls (Tag ist Dienstag UND Tageszeit > Mittags) In VBScript würde das so aussehen: If (nDay = vbTuesday And dTime > 12) Then Der einzige Unterschied in C# ist, daß das And durch && ersetzt werden muß: if (nDay == vbTuesday && dTime > 12) Folgende Operatoren gibt es:
Damit haben wir alle Unterschiede besprochen, die das if Statement von C# mit sich bringt, und können mit dem nächsten Kontrollstatement weitermachen: switch. Das switch StatementObwohl einem dieses Statement nicht auf Anhieb bekannt vorkommt, ist es das C# Äquivalent zu Select Case: Select Case nNote Case 1 Response.Write "Sehr gut!" Case 5 Response.Write "Bombastisch!" Case Else ' alles andere interessiert uns nicht End Select Umgebaut in C# sieht es wie folgt aus: switch (nNote) { case 1: Response.Write("Sehr gut!"); break; case 5: Response.Write("Bombastisch!"); break; default: // alles andere interessiert uns nicht break; } Der wichtige Unterschied ist, daß man hinter das letzte Statement eines case Labels ein break Statement schreiben muß (in VBScript ist das nicht nötig). Man muß sich also nur die neue Syntax merken, und schon kann man auch das switch Statement verwenden. SchlußbemerkungDie if und switch Statements bergen keine großen Überraschungen, man muß nur aufpassen und bei der Syntax am Anfang mitdenken, da die Gleichheits- bzw. Ungleichheitsoperatoren im if Statement doch deutlich verschieden sind. Zum Trost: der Compiler klopft einem doch deutlich und bestimmt auf die Finger... Download des CodesKlicken Sie hier, um den Download zu starten. Verwandte Artikel
A Brief History of C# Links zu anderen Sites
Die aspDEdotnet Diskussionsliste Wenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Eine weitere sehr hilfreiche Resource ist das deutsche ASP.NET Wiki, das als zentrale Anlaufstelle für Tips, Tricks, Know How und alles Nützliche was man in seinem Alltag als (ASP).NET-Entwickler so braucht und entdeckt gedacht ist. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |