Dieses Programmierpuzzle ist inspiriert von einer anderen Frage, die gestern hier gestellt wurde, aber vom Autor gelöscht wurde ...
Die Herausforderung:
Erstellen Sie eine ausführbare Binärdatei (Windows .EXE- oder Linux-Binärdatei) mit Visual C # (oder Ihrer bevorzugten C # -IDE), die den folgenden Text in die Standardausgabe druckt:
Main() is the main method of C# programs!
... ohne die 4 aufeinander folgenden Buchstaben MAIN zu verwenden, die in einer Quelldatei erscheinen!
Anmerkungen:
- Wenn Ihr Quellcode den Text enthält
remainder
(zum Beispiel), enthält er die 4 aufeinanderfolgenden Buchstaben MAIN. Wenn er jedochmxain
die 4 Buchstaben enthält, ist dies nicht mehr aufeinanderfolgendmxain
zulässig. Sie dürfen keine Programme außer der C # -IDE ausführen oder die Einstellungen der C # -IDE ändern, um andere Programme auszuführen (aber diejenigen, die normalerweise ausgeführt werden, wie z. B. den C # -Compiler).
Ansonsten könnte man einfach sagen: "Ich schreibe ein Pascal-Programm mit der C # -IDE und rufe den Pascal-Compiler in den 'Pre-Build'-Schritten meines C # -Projekts auf."
Das wäre zu einfach.
Benutzer einer IDE, die mithilfe von "Plug-Ins" (oder ähnlichem) erweitert werden können oder über integrierte Binärdatei-Editoren (Hex-Editoren) verfügen, hätten einen zu großen Vorteil gegenüber Benutzern anderer C # -IDEs.
Daher sollten diese Merkmale auch nicht verwendet werden.
- Die Verwendung der anderen Nicht-ASCII-Editoren (wie des Dialogfenster-Editors) ist ausdrücklich gestattet!
- Der Benutzer, der die ursprüngliche Frage gestellt hat, schlug den Backslash in Funktionsnamen wie
static void M\u0061in()
folgt vor : Da diese Antwort bereits von anderen Benutzern gelesen wurde, wird sie nicht mehr akzeptiert! - Ein Benutzer fragte, ob es erlaubt sei, einfach eine EXE-Datei in den Quellcode-Editor einzugeben und die Datei als ".exe" anstelle von ".cs" zu speichern. Antwort: Ich bezweifle nicht, dass dies möglich ist, da sowohl gültige Windows- als auch Linux-Binärdateien NUL-Bytes enthalten. Wenn Sie jedoch eine gültige Binärdatei finden, die auf diese Weise erstellt werden kann, haben Sie eine gültige Lösung.
Der Name dieser Website lautet "Programming Puzzles & Code Golf" - dies ist ein "Programming Puzzle", nicht "Code Golf": Die Herausforderung besteht darin, vor allen anderen Benutzern eine funktionierende Lösung zu finden und keine kürzere Lösung als alle anderen zu finden Lösungen.
Daher gewinnt der erste Beitrag, der eine funktionierende Lösung beschreibt !
Viel Glück!
Übrigens: Ich habe eine Lösung, die unter Visual C # Express 2010 funktioniert.