Hätten Sie es gewusst? 03.02.2010, 00:00 Uhr

Was passiert denn, wenn ...

Wer das folgende Code-Schnipsel durch den Compiler schickt, bekommt ... ja was bekommt man denn eigentlich?
 Es ist kurz und wenig spektakulär. Und man sieht auf den ersten Blick, dass das nicht kompiliert. Oder vielleicht doch? Was meinen Sie?
class dotnetpro
{
  public static void Main()
  {
    http://www.dotnetpro.de;
  }
}
Und was passiert hier, wenn der Compiler das verdauen soll?
class dotnetpro
{
  public static void Main()
  {
    http://www.dotnetpro.de;
    ;
  }
}
Lösung: Das erste Schnipsel ist doch ganz klar ein Syntaxfehler. Oder doch nicht? Eine Url im Quelltext ist wenig sinnvoll und das quittiert der Compiler auch mit einem Fehler. Aber es ist kein Syntaxfehler. Denn der Compiler sieht nicht etwa eine Url, sondern die Sprungmarke "http:" und einen einzeiligen Kommentar "//www.dotnetpro.de". Deshalb gibt der Compiler auch "Ungültiger Ausdruck "}" aus, denn nach der Sprungmarke steht die geschweifte Klammer und das ist falsch. Das zweite Schnipsel korrigiert das. Das zusätzliche Semikolon in der nächsten Zeile reicht aus, dass der Code kompiliert werden kann - allerdings mit einer Warnung, denn die Sprungmarke wird nie angesprungen.
Vielen Dank an Golo Roden für diese Aufgabe.


Das könnte Sie auch interessieren