Erste Schritte mit C# unter Microsoft® Windows 7 (Erste Schritte mit C# unter Microsoft® Windows 7), Lektion, Seite 723044
https://www.purl.org/stefan_ram/pub/erste_csharp (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Erste Schritte mit C♯  unter Microsoft® Windows 7 

Viele einfache C♯ -Programme lassen sich schon mit einer Webseite wie »dotnetfiddle.net« ausführen.

Aktuelle Dotnet-Version installieren

Bis zur Version 5.0 von C♯  war der Compiler für C♯  Teil des Dotnet-Frameworks.

Den Compiler für die Version 6.0 von C♯  ist unter der folgenden URI zu finden.

Microsoft Build Tools 2015

https://www.microsoft.com/en-us/download/details.aspx?id=48159&6B49FDFB-8E5B-4B07-BC31-15695C5A2143=1

https://download.microsoft.com/download/E/E/D/EEDF18A8-4AED-4CE0-BEBE-70A83094FC5A/BuildTools_Full.exe

Es kann nicht schaden, davor eine aktuelle Version des Microsoft-.NET-Framework 4.6.1 zu installieren.

Microsoft .NET Framework 4.6.1

https://www.microsoft.com/en-us/download/details.aspx?id=49982

https://download.microsoft.com/download/E/4/1/E4173890-A24A-4936-9FC9-AF930FE3FA40/NDP461-KB3102436-x86-x64-AllOS-ENU.exe

Arbeitsverzeichnis anlegen

In weiteren Verlauf der Vorbereitung der Ausführung von C♯ -Programmen wird es sich als hilfreich erweisen, ein Verzeichnis für vom Leser angelegte Dateien zur Verfügung zu haben. Daher sollte der Leser jetzt ein solches Verzeichnis an einem der Orte anlegen, an dem er auch sonst von ihm angelegte Verzeichnisse und Dateien speichert.

C♯ -Implementation finden

Durch die Eingabe des folgenden Kommandos in das Windows -Programm cmd  können wir den Ort der C♯ -Implementation auf der Festplatte finden.

Eingabe
dir /s/b C:\csc.exe

Es ist zum Erlernen der Programmiersprache C♯  nicht wichtig, dieses dir-Kommando genau zu verstehen, so daß wir hier auf weitere Erläuterung verzichten.

Es kann einige Minuten dauern, bis dieses Kommando beendet ist. Die Ausgabe hängt von dem System ab, auf welchem das Kommando gestartet wird, und könnte beispielsweise ähnlich wie folgt lauten.

mögliche Ausgabe
C:\Program Files\MSBuild\14.0\Bin\csc.exe
C:\Windows\Microsoft.NET\Framework\v2.2.344\csc.exe
C:\Windows\Microsoft.NET\Framework\v3.6\csc.exe
C:\Windows\Microsoft.NET\Framework\v4.0\csc.exe
C:\Windows\Microsoft.NET\Framework64\v2.2.344\csc.exe
C:\Windows\Microsoft.NET\Framework64\v3.6\csc.exe
C:\Windows\Microsoft.NET\Framework64\v4.0\csc.exe
C:\Windows\winsxs\…

In der erhaltenen Ausgabe können wir zunächst alle Pfade mit »winsxs« ignorieren.

Falls vorhanden sollte für die nächsten Schritte der Pfad mit »C:\Program Files\MSBuild\14.0\Bin\csc.exe« verwendet werden. Ansonsten sollten sollten für den nächsten Schritt die Pfade mit »64« verwendet werden, wenn mit einer 64-Bit-Verson von Microsoft® Windows  gearbeitet wird, andernfalls die Pfade ohne  »64«, und dann sollte der Pfad mit der größten Versionsnummer  ausgewählt werden; in dem obigen Beispiel wäre dies für eine 64-Bit-Verson von Microsoft® Windows  beispielsweise der Pfad »C:\Windows\Microsoft.NET\Framework64\v4.0\csc.exe«.

Die Versionsnummer kann nicht immer dem Pfad entnommen werden! Eventuell muß der Bearbeiter an dieser Stelle zusätzliche Nachforschungen anstellen, um herauszufinden, welcher der beste oder neueste Compiler ist.

Dieser Pfad sollte für spätere Verwendung aufbewahrt werden. Wir nennen ihn den CSC-Pfad. (Die Abkürzung “csc ” bedeutet so viel wie “C Sharp compiler ”.)

Dateien anlegen

Nun sind zwei Textdateien anzulegen. Im folgenden finden sich Wiedergaben dieser zwei Dateien in einer Form, bei der zuerst der Name der anzulegenden Textdatei und darunter eingerückt ihr Inhalt angegeben ist. Diese Anleitung setzt voraus, daß der Leser das Anlegen von Textdateien unter Windows  bereits erlernt hat. Obwohl der Inhalt dieser Dateien Text sein soll, soll die Dateinamenserweiterung nicht ».txt« sein, sondern jeweils wie angegeben lauten.

»Run.cmd«

In die folgende Datei »Run.cmd« ist der im vorigen Schritt erhaltene CSC-Pfad hinter das Gleichheitszeichen in der ersten Zeile einzufügen. In dem folgenden Beispiel findet sich beispielsweise »C:\Windows\Microsoft.NET\Framework64\v4.0\csc.exe« als CSC-Pfad. Dieser ist durch den im vorigen Schritt erhaltenen CSC-Pfad zu ersetzen.

Run.cmd (Beispiel, ist unter Umständen noch anzupassen)
@set CSC=C:\Program Files\MSBuild\14.0\Bin\csc.exe
"%CSC%" /nologo /warn:4 /debug /optimize ^
/reference:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.JScript.dll ^
/reference:System.IO.Compression.FileSystem.dll ^
/reference:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\PresentationCore.dll ^
/reference:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\PresentationFramework.dll ^
/reference:System.dll ^
/reference:System.Windows.dll ^
/reference:System.Xaml.dll ^
/reference:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\WindowsBase.dll ^
Program.cs
@IF NOT ERRORLEVEL 1 .\Program.exe
@PAUSE

»Program.cs«

Die folgende Datei ist das eigentliche C♯ -Programm. Wenn es gestartet wird, schreibt es den Text »Hallo, Welt!«.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( "Hallo, Welt!" ); }}

Als den eigentlichen Namen  einer Datei bezeichnen wir hier den Teil des Dateinamens vor dem letzten Punkt. Der eigentliche Name der Datei »Program.cs« lautet also »Program«.

Der Name der Klasse muß nicht  mit dem eigentlichen Namen der Datei übereinstimmen.

Wenn ein einfaches Kommando, in der Art wie »csc Program.cs« zum Übersetzen verwendet wird, so wird der Name der ausführbaren Datei »Program.exe« aus dem Namen der Datei  »Program.cs« gebildet – nicht  aus dem Namen der Klasse (»Program«).

In dem obigen Programm beginnt eine Klasse mit »static class«. Der Klassenname ist der Name dieses Klasse und wird durch das Wort festgelegt, welches direkt hinter »class« steht.

Das Programm starten

Nun kann die Datei »Run.cmd« gestartet werden, die dann ihrerseits das C♯ -Programm startet. Hierzu kann der Eintrag »Öffnen« im Kontextmenü jener Datei aktiviert werden. Daraufhin sollte sich ein Konsolenfenster öffnen und die Ausgabe des Skripts anzeigen.

Ausgabe des Skripts (ähnlich)

>set CSC=C:\Program Files\MSBuild\14.0\Bin\csc.exe

>"C:\Program Files\MSBuild\14.0\Bin\csc.exe" Program.cs
Microsoft (R) Visual C# Compiler version 4.0.30319.18408
for Microsoft (R) .NET Framework 4.5
Copyright (C) Microsoft Corporation. All rights reserved.

>IF NOT ERRORLEVEL 1 .\Program.exe
Hallo, Welt!

>PAUSE
Press any key to continue . . .

In der Ausgabe des Skripts lassen sich vier Abschnitte erkennen.

Der erste Abschnitt zeigt das ausgeführte set-Kommando an, welches den CSC -Pfad festlegt. Es ist zum Erlernen der Programmiersprache C♯  nicht wichtig, dieses set-Kommando genau zu verstehen, so daß wir hier auf weitere Erläuterung verzichten.

Der zweite Abschnitt zeigt das Kommando, mit dem der C♯ -Compiler gestartet wird. Es handelt sich dabei um ein Programm, welches C♯ -Programme auf Fehler überprüft und zur Ausführung vorbereitet.

Der dritte Abschnitt zeigt das Kommando, mit dem das vom C♯ -Compiler zur Ausführung vorbereitete C♯ -Programm, welches nun »Hello.exe« heißt, gestartet wird, falls die Übersetzung gelang. Das C♯ -Programm gibt dann den Text »Hallo, Welt!« aus.

Die erzeugte exe-Datei kann in der Regel jederzeit gelöscht werden, da sie aus der cs-Programmdatei wieder hergestellt werden kann.

Im letzten Abschnitt sieht man schließlich noch das Kommando »PAUSE«. Es verhindert das Schließen des Konsolenfensters solange, bis eine Taste in diesem Konsolenfenster gedrückt wird, und ermöglicht es so, die obenstehenden Ausgaben zu lesen.

Weitere Software

Einige Programm, die in Zusammenhang mit der C♯ -Programmierung noch nützlich sein könnten, sind: SharpDevelop, LINQPad, Red Gate's .Net-Reflector, ILSpy  oder dotPeek.

Übungsaufgaben

/   Programm starten

Führen Sie die oben beschriebenen Schritte aus, um das C♯ -Programm zu starten.

/   Programmausgabe ändern

Ändern Sie das Programm so ab, daß es nicht mehr »Hallo, Welt!«, sondern »Ausgabe« ausgibt. Dazu ist die Datei »Program.cs« in der letzten Zeile zu verändern. Zur Kontrolle soll das Programm dann durch Öffnen der Datei »Run.cmd« gestartet werden.

Ausgabe des Skripts (ähnlich)

>set CSC=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe

>"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" Main.cs
Microsoft (R) Visual C# Compiler version 4.0.30319.18408
for Microsoft (R) .NET Framework 4.5
Copyright (C) Microsoft Corporation. All rights reserved.

>IF NOT ERRORLEVEL 1 .\Main.exe
Ausgabe

>PAUSE
Press any key to continue . . .

Variante für den Unterrichtsraum TK309 (32-Bit Windows)

RUN.cmd
@set CSC=C:\Program Files\MSBuild\14.0\Bin\csc.exe
@"%CSC%" /nologo /warn:4 /debug /optimize ^
/reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.JScript.dll ^
/reference:System.IO.Compression.FileSystem.dll ^
/reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\PresentationCore.dll ^
/reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\PresentationFramework.dll ^
/reference:System.dll ^
/reference:System.Windows.dll ^
/reference:System.Xaml.dll ^
/reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\WindowsBase.dll ^
Program.cs
@IF NOT ERRORLEVEL 1 .\Main.exe
@PAUSE
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( "orkten" ); }}";
Autohotkey.txt

run_java_main() {
SetTitleMatchMode 3
IfWinExist, %A_WinDir%\system32\cmd.exe
WinClose
IfWinExist, %A_WinDir%\system32\cmd.exe
WinClose
SetTitleMatchMode RegEx
IfWinExist, i)Program\.cs - (Editor|Notepad)
WinActivate
Else
Run %A_WinDir%\notepad.exe %A_ScriptDir%\Program.cs,,Max
Send ^s
Run "%A_ScriptDir%\RUN.cmd",%A_ScriptDir%
Return
}

^R::
run_java_main()
Return

^E::
SetTitleMatchMode RegEx
IfWinExist, i)Program\.cs - (Editor|Notepad)
WinActivate
Else
Run %A_WinDir%\notepad.exe %A_ScriptDir%\Program.cs,,Max
Return

^H::
Send ^c
SetTitleMatchMode RegEx
IfWinExist, i)Program\.cs - (Editor|Notepad)
WinActivate
Else
{
Run %A_WinDir%\notepad.exe %A_ScriptDir%\Program.cs,,Max
sleep, 999
}
sleep, 99
Send ^a
Send ^v
run_java_main()
Return

^B::
Send ^c
SetTitleMatchMode RegEx
IfWinExist, i)Program\.cs - (Editor|Notepad)
WinActivate
Else
{
Run %A_WinDir%\notepad.exe %A_ScriptDir%\Program.cs,,Max
sleep, 999
}
sleep, 99
Send ^a
SendInput public public static class Program{enter}{{} public static void Main(){enter} {{} global::System.Console.WriteLine{enter} ({space}
Send ^v
Send {space}); {}}{}}
run_java_main()
Return

^D::Run, cmd /c start Firefox http://msdn.microsoft.com/en-us/library/gg145045(v=vs.110).aspx,,Max

^O::
Run, cmd /c start Firefox http://www.google.de,,Max
Return

:*?:qjp::
SendInput global::System.Console.WriteLine(
return

Autohotkey.cmd
Start Autohotkey Autohotkey.txt
Anleitung

Strg-R Run Ausfuehren des Programms

Strg-E Edit Bearbeiten des Programms

Strg-H Ausfuehren der Markierung als Programm

Strg-B Bitte auswerten! Auswertung der Markierung als Ausdruck

Strg-D Documentation Dokumentation

Strg-O Off to Google Zu Google gehen

Motivation

Warum wird im Kurs mit Textdateien gearbeitet?

O
/|\ -------> GUI
/ \

O
/|\ -.
/ \ '-.
:-> Text
.-'
Prg -'

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723044 stefan_ram:723044 Erste Schritte mit C# unter Microsoft® Windows 7 Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723044, slrprddef723044, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/erste_csharp