8,99 €
Wie Sie als Einsteiger praxisnah und einfach C# programmieren lernen!
- inkl. kostenfreien Zugang zur PDF-E-Book Version -
Egal ob für Ihr Studium, Ihren Beruf, bessere Jobmöglichkeiten und Karrierechancen, oder Ihr Hobby: Mithilfe dieses Buches werden Sie auch ohne Vorkenntnisse alle wichtigen Programmiergrundlagen Schritt für Schritt erlernen und Ihr Wissen in C# vertiefen. Somit erschaffen Sie sich ein solides Fundament und sammeln erste wichtige Erfahrungen für die Praxis, um im Anschluss Ihre eigenen Programme, Anwendungen, Apps und Spiele mit C# programmieren zu können.
C# (bzw. C Sharp) ist eine objektorientierte, universelle und mit dem .NET-Framework ausgestattete Programmiersprache. Das .NET-Framework ermöglicht die Programmierung grafischer Oberflächen für Anwendungen und Spiele. Insgesamt entstammt C# der Familie der C-Sprachen und hat dementsprechend sehr große Ähnlichkeiten zu C und C++, wobei C# etwas einfach zum Erlernen ist. Durch das .NET-Framework hat C# ebenfalls Gemeinsamkeiten mit Java, was den Umstieg zwischen den beiden Sprachen sehr leicht gestalten lässt.
Von Datenstrukturen, mathematischen und logischen Operatoren über Kontrollstrukturen, bis hin zur objektorientierten Programmierung und grafischen Benutzeroberflächen erwartet Sie alles Notwendige in diesem Buch, damit Sie erfolgreich programmieren lernen und Ihre eigenen Anwendungen mit C# schreiben können!
Im Detail erwarten Sie folgende Inhalte:
-Schritt für Schritt Anleitungen, damit Sie direkt mit dem Programmieren starten können -alle Grundlagen, damit Sie auch ohne Vorerfahrung erfolgreich programmieren lernen -objektorientierte Programmierung, damit Sie Anwendungen mit C# schreiben können -grafische Benutzeroberflächen, damit Sie Ihre Anwendungen designtechnisch aufwerten -Übungen nach jedem Kapitel, damit Sie Ihr Wissen optimal für die Praxis vorbereiten können -zahlreiche Beispiele, Tipps und Tricks, damit Ihnen programmieren noch einfacher fällt
Ich freue mich darauf, mich mit Ihnen gemeinsam auf die spannende Reise in die Programmierwelt mit C# zu begeben und wünsche Ihnen viel Spaß und Erfolg beim Programmieren lernen!
Adrian Rechsteiner
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Veröffentlichungsjahr: 2021
C#
Programmieren für Einsteiger
Das fundierte und praxisrelevante Handbuch
Wie Sie als Anfänger Programmieren lernen und schnell zum C#-Experten werden
Bonus: Übungen inkl. Lösungen
1. Auflage 2021
Copyright © Adrian Rechsteiner
Alle Rechte vorbehalten.
A | S Verlag
Inhaltsverzeichnis
Kostenloses E-Book
1 Vorwort – Über das Programmieren mit C#
1.1 Programmieren als logischer Entwicklungsschritt der Menschheit
1.2 Die Einsatz- & Nutzungsbereiche von C#
1.3 Sprachen im Überblick
Gemeinsamkeiten
Unterschiede
.NET und C# - Ein erstes Fazit
2 Das Studio für Ihre Komposition
Einschub: Dateiendungen
2.1 Microsoft Visual Studio
2.2 Die Entwicklungsumgebung – Erste Schritte
3 Hello World – Das erste Programm
3.1 Debuggen starten
3.2 Projektdateien und Verzeichnisse
3.3 Die Syntax
3.4 Fehlerliste // Codefehler
4 Elementare Strukturelemente
Kommentare /*geben die Möglichkeit für Hinweise*/
4.1 Datentypen
Das Binärsystem
Die .NET Datentypen
Das Hexadezimalsystem
Suffix
4.2 Operatoren
Rechnungsoperatoren
Vergleichsoperatoren
Boolesche Operatoren
4.3 Variablen
4.4 Arrays
Eindimensional
Mehrdimensional
4.5 Strings
4.6 System.Console.Read & Write
Ausgabe – Methoden
Eingabe – Methoden
Exception Handling
4.7 Verzweigungen
if - Verzweigungen
Beispiel 1 // Überprüfen einer ganzen Zahl
Beispiel 2 // Passworteingabe
switch - Verzweigung
Übung 1 // Mögliche Nenner einer Zahl
4.8 Schleifen
for - Schleifen
Beispiel 3 // 7 Schleifendurchläufe
Übung 2 // Fakultät einer Zahl
continue, break, return // Kontrollstrukturen
while - Schleifen
do - while - Schleifen
Übung 3 // Arrays und Schleifen
foreach – Schleifen
4.9 Funktionen / Methoden
Beispiel 4 // Verwendung von Methoden
Beispiel 5 // Übergabe mit Referenz
5 Objektorientiertes Programmieren
5.1 Klassen // class
5.2 Objekte, Methoden, Felder
Felder
Methoden
Overloads
5.3 public & private
Namenskonventionen
5.4 Konstruktor
5.5 Eigenschaften // get; set;
5.6 Vererbung
5.7 Listen // List
5.7 Fortgeschrittene Projektstruktur
Übung 4 // Anlegen einer Bestellliste
Aufgabenstellung
Musterlösung
Bonus 1 – Fortgeschrittene Übung
Minesweeper
Aufgabenstellung
Musterlösung
Bonus 2 – Tipps und Tricks
Debugging Tools
Einfach den Überblick behalten
Buchempfehlung
Zugang zum kostenlosen E-Book
Vielen Dank für den Kauf des Buchs!
Damit Sie sich die Inhalte noch leichter aneignen können, stelle ich Ihnen gerne kostenlos das Buch als E-Book im PDF-Format zur Verfügung. Den Link und QR-Code finden Sie am Ende des Buches im Kapitel „Zugang zum kostenlosen E-Book“.
Unter dem Link können Sie die PDF problemlos herunterladen.
Falls Sie Schwierigkeiten beim Download haben sollten, dann schicken Sie uns einfach kurz eine E-Mail an:
mit ihrer Kaufbestätigung / Rechnung / einem Foto von Ihrem Taschenbuch. Danach werden wir Ihnen das E-Book per E-Mail zusenden.
Ich wünsche Ihnen viel Erfolg bei Ihrem nächsten IT-Projekt!Adrian Rechsteiner
Der Titel „C# Programmieren für Einsteiger“ sagt bereits zuallererst, dass dieses Buch für Personen geeignet sein soll, die sich erstmals mit dem Schreiben von Programmen auseinandersetzen möchten. „Einstieg“ heißt gleichzeitig, dass der Umgang mit einem Computer und das Bedienen von diversen Programmen für den Eigennutz bereits stattgefunden hat. Mit dieser Grundlage werden Sie an der Hand genommen und können vor allem das „Wie?“ im Kontext „Programme“ durchleuchten.
Davor sollten die wichtigen Begriffe, die stets im Umgang mit Computern und Programmen fallen, vorweggenommen und zumindest oberflächlich erläutert werden. Das, was den Programmen Leben einhaucht ist die
Hardware. Der Personal Computer, kurz ‚PC‘, umfasst stets ähnliche Komponenten, die real und fassbar sind. Auf Grund dieser Eigenschaft sind sie unter dem genannten Begriff zusammengefasst worden. Dazu gehört z.B. der Hauptverantwortliche namens
Prozessor. Die einzelnen Hardware Komponenten sind durchaus vergleichbar mit bestimmten biologischen Organen. Der Prozessor stellt gleichzeitig das Herz und das mathematische Gehirn dar, das mit einer bestimmten Frequenz den Aufgabenstapel abarbeitet.
Im Englischen hat er daher den Namen Central Processing Unit, kurz CPU, erhalten. Maßgeblich für die Rechenleistung ist nicht nur die maximale Taktfrequenz, sondern auch die Anzahl der Recheneinheiten, den sogenannten Kernen. Nicht jedes Programm unterstützt das Verwenden von mehreren Kernen, denn dieses Verhalten muss ganz bewusst im Quellcode eines Programms verankert werden. Die Sinnhaftigkeit der Kernanzahl ist auch dadurch begrenzt, dass es stets eine bestimmte Anzahl von Vorgängen gibt, die zeitgleich stattfinden können.
So wie beim Herz kann um Energie zu sparen und die Lebensdauer der Komponenten zu erhöhen die Frequenz gedrosselt werden, falls die Situation es zulässt. In enger Zusammenarbeit steht der Prozessor mit dem
Arbeitsspeicher. Dieser ist das Kurzzeitgedächtnis des PCs. Er hat im Englischen den Namen Random - Access Memory, kurz RAM. Dessen großer Vorteil ist die hohe mögliche Kommunikationsgeschwindigkeit, nämlich die Geschwindigkeit der CPU.
Als Nachteil kann betrachtet werden, dass die gespeicherten Informationen verloren gehen, wenn der Stromfluss zu dieser Hardware - Komponente wegfällt. Beim Energiesparmodus eines Computers muss daher der Arbeitsspeicher angeschaltet bleiben, was allerdings ein sehr schnelles Wiederhochfahren ermöglicht, denn das Betriebssystem oder geöffnete Programme sind sozusagen bereits „im Arbeitsspeicher“.
Damit der Arbeitsspeicher überhaupt mit Informationen gefüllt werden kann, wird ein fester Speicher, also das Langzeitgedächtnis, benötigt. In der Regel ist das die
Festplatte. Die Bauweise, die sehr lange den Markt eingenommen hat, ist die HDD (Hard Disk Drive) gewesen, welche nun meist von der deutlich schnelleren Solid State Disk (SSD) abgelöst wird. Wird keine schnelle Festplatte benötigt ist die nun günstigere HDD nach wie vor ein hervorragendes Mittel um viele Daten abzulegen. Zu den gespeicherten Inhalten gehört natürlich auch das
Betriebssystem, welches nach dem Starten des Computers das erste aufgerufene interaktive Programm ist. Dabei ist die SSD ganz klar als Speichermedium zu empfehlen, da so das Hochfahren sehr schnell von statten gehen kann. Es hat eine Grafische Benutzeroberfläche, was auf Englisch ‚Graphical User Interface‘
(GUI) heißt. Bekannt sind im Umgang mit PCs „Windows“, „MacOS“ und „Linux“. Solche und alle weiteren funktionellen Inhalte die auf Speichermedien abgelegt werden können, werden
Software genannt.
‚Ja natürlich!‘ denken Sie sich jetzt. Gemeint ist in diesem Fall der Bezug zu programmierähnlichen Denkweisen, die der Mensch schon lange in solcher Art und Weise zu seinem Vorteil nutzt.
Ein hervorragendes Beispiel stellt die Dressur von Wölfen dar. Die Fähigkeit durch eine Kommunikation der nicht - eigenen Sprache das Gegenüber zur Kooperation zu bewegen ist ein Ausdruck fortgeschrittener Intelligenz. Es gibt in der Natur zwar oft eine Lebensgemeinschaft zwischen verschiedenen Arten, jedoch sind diese lediglich intuitiv. Das Zusammenleben von Menschen und Hunden hingegen, ist durch ein Actio- / Reactio - Verständnis des Dressierenden entstanden. Der Mensch weiß, dass das eigene Verhalten in verschiedenen Situationen ebenfalls verschieden ist. Dabei handelt es sich um einen logischen Zusammenhang, welcher in diesem Beispiel in erster Linie das Fressverhalten thematisiert. Der Wolf stellt als Feind eine große Gefahr dar. Zwar kann er überwältigt und in die Flucht geschlagen werden, jedoch hätte er als Freund sogar einen Nutzen. Dazu gehören die Verteidigung und Alarmierung der Gruppe oder die überlegene / nützliche Nase. Mit der Erkenntnis, dass Wölfe eine Begegnung an manchen Tagen meiden und an hungrigen Tagen ans Überleben zu denken scheinen, ist die Idee entstanden dem Wolf gelegentlich einen Knochen zuzuwerfen. Es ist dann nur eine Frage der Zeit gewesen, bis manche schlauen Wölfe ebenfalls den eigenen Vorteil darin erkannt haben, sich mit den Menschen zu verbünden. Die gezielte Züchtung bestimmter Rassen ist ein weiterer Schritt der Programmierung, da so bestimmte erwünschte Merkmale, wie Zutraulichkeit, verstärkt und isoliert werden können. Die Hunde können nun optimal ganz vielen Zwecken dienen, ob als Jagd-, Hüte- oder Gesellschaftshund. Für warmes, kaltes oder mildes Klima.
Dieses Beispiel, welches nur eines von vielen ist, zeigt: Auch Sie, sofern Sie noch kein Informatikprofi sind, verstehen also schon was es heißt zu Programmieren. Es ist etwas das sehr an die Gesetze der Logik gebunden ist. Es handelt sich um ein Prozessdenken, welches durch logische Zusammenhänge abgesichert werden kann. Allerdings ist dazu vorher die Erfindung des Computers, wie wir ihn kennen, notwendig.
Die Person, die an dieser Stelle genannt werden soll ist Alan Turing, welcher diesen flexiblen Rechner und dessen Fähigkeiten schon vor der tatsächlichen Erfindung vorhergesagt und entworfen hat. Dabei spricht er von der „universellen Turing - Maschine“, welche dank diverser Programme etliche Probleme lösen kann. Dies sei möglich, durch das Konzept von Hardware, Software und der Speicherprogrammierung. Seine Idee ist in den Jahren 1945 bis 1950 im „National Physical Laboratory“ in London Wirklichkeit geworden. Dort hat er den „Automatic Computing Engine“ („ACE“) gebaut, die reale Turing - Maschine. Darüber hinaus hat er die Frage, ob solche Maschinen eigenständig denken und tatsächliche Intelligenz besitzen können, formuliert und dafür den „Turing - Test“ entworfen. Dabei wird lediglich geprüft, ob ein Proband bei einer testweisen Chatprogrammunterhaltung in der Lage ist zu unterscheiden, ob der Gesprächspartner Computer oder Mensch sitzt. [1]
Nun im Jahr 2021, dem digitalen Zeitalter, ermöglicht uns die Fähigkeit des Programmierens und die Unterstützung des Computers komplett neue Lebensweisen. Digitalisierung heißt, dass Vorgänge auf Maschinencode übersetzt werden. Aus einer komplexen Anforderung werden unzählige Nullen und Einsen, welche jedoch von der elektronischen Hardware verstanden werden. ‚Unter Strom oder nicht unter Strom?‘, ist also die moderne Frage unserer Zeit.
Schon die ersten Computer haben enormen Komfort bereitet, das menschliche Gehirn ist in vielen Bereichen entlastet worden. In der Freizeit entstehen unzählige Möglichkeiten der digitalen Unterhaltung. Die Tatsache, dass alles nur eine Frage der Rechenleistung ist, beschleunigt den Fortschritt ungemein. Die Kooperation mit der Natur hat Grenzen, Digitalisierung womöglich nur durch die verfügbaren Ressourcen.
C# ist eine universell einsetzbare Sprache. Es spielt also keine Rolle, ob sie für Spiele-, Web- oder App – Anwendungen verwendet wird. Allerdings wird C# von dem Unternehmen Microsoft entwickelt und wird daher primär beim Betriebssystem Windows eingesetzt. Die Implementierung in anderen Plattformen (Linux, MacOS, Android) wird dennoch weiter vorangetrieben. Auf Grund der Plattformunabhängigkeit ist die Sprache folglich, besonders aber in Kombination mit der Windowsumgebung, für diverse Anwendungen immer in der engeren Auswahl.
Neben C# gibt es viele diverse andere Programmiersprachen. Nennenswert sind z.B.:
BASIC, C, C++, Java, Javascript, Python, Swift, Delphi.
Genauer sollen diese hier nicht betrachtet werden. Allgemein muss jedoch gesagt werden, dass die Gemeinsamkeiten bei der Programmierung eine stärkere Gewichtung haben als die Unterschiede, denn alle Programme werden letztendlich durch sehr ähnliche Hardware – Komponenten umgesetzt.
So haben Programmiersprachen z.B. einen Sprachkern und eine Standardbibliothek. Darin gibt es eine Auswahl an Funktionen, es ist auch die Rede von Methoden. Es werden Variablen benutzt, welche deklariert, verarbeitet und überprüft werden können. In der Komplexität können Programme dann z.B. durch Schleifen oder Entscheidungen erhöht werden. Sofern der Rechner das Programm ausführen soll, so muss es kompiliert, d.h. in Maschinensprache übersetzt werden. Dazu braucht jede Sprache einen eigenen Kompilierer (eng.: Compiler). Die Syntax selbst verwendet grundsätzlich englische Wörter. Es ist sehr vorteilhaft, wenn Englisch zu den persönlichen Sprachkompetenzen gehört.
Als Begleiterscheinung des Fortschritts wird Software stets weiterentwickelt. Das betrifft nicht nur Programme und Betriebssysteme, sondern auch die Sprache selbst. D.h. es entstehen neue Möglichkeiten Code zu formulieren und die Mechanismen, wie die Sprache in Zusammenhang mit dem Compiler funktioniert, werden den Anforderungen angepasst.
Welche Programmiersprache letztendlich aber für die jeweilige Anwendung die richtige ist, lässt sich trotz allem besser an den Unterschieden festmachen.
Nicht alle Sprachen können das Gleiche. Es gibt Sprachen, welche geeignet oder nicht geeignet sind für z.B. objektorientierte Programmierung. Die Auswahl möglicher Methoden unterscheidet sich und auch die so genannte Syntax, d.h. mit welchen Schlüsselwörtern der Quellcode formuliert werden muss, ist andersartig. Zeichensetzung, Wortwahl, all das hat immer eine bestimmte Bedeutung. Außerdem wird unterschieden, ob eine Sprache maschinennah ist oder ob es eine unterstützende Laufzeitumgebung gibt.
Maschinennah bedeutet, dass die Programmsyntax direkten Einfluss auf die Hardware hat. Fehler können daher fatal sein und schlechte Programmierung wird sich in der Performance des Programms bemerkbar machen.
Anders als maschinennahe Sprachen (z.B. C oder C++) ist C# nur in Kombination mit dem .NET – SDK vollwertig und funktional. Ein SDK (Software Development Kit) gibt es auch bei anderen nicht – maschinennahen Programmiersprachen und heißt im deutschen sozusagen Softwareentwicklungsbaukasten. Im Fall von .NET gibt es derzeit .NET – Core, welches die SDK ist, die für alle Plattformen gleichermaßen verwendet werden kann.
Das Paket beinhaltet verschiedene Bestandteile, unter anderem auch einen Compiler, der die C# - Syntax in einen Zwischencode (Common Intermediate Language Code) übersetzt. Dieser wird dann zur Laufzeit des Programms in der virtuellen .NET – Laufzeitumgebung, welche Common Language Runtime heißt, verarbeitet.
Diese Architektur ist ein grundlegender Vorteil der .NET – Entwicklung. Unter anderem können so nämlich mehrere Sprachen (z.B. F#, VB, …) in einem Projekt verwendet werden, welche dann ebenfalls in Common Intermediate Language Code übersetzt werden. Die zentral agierende Laufzeitumgebung ermöglicht außerdem praktische Mechanismen wie z.B. die automatische Speicherverwaltung. Des Weiteren ist in dem .NET - SDK eine große Klassenbibliothek enthalten, welche das Programmieren mit weitreichenden objektorientierten Eigenschaften und Möglichkeiten ausstattet. Aktuell (2021) ist die Verwendung von C#9.0 mithilfe von .NET 5.0 möglich.
Im folgenden Inhalt sollen Sie lediglich die ersten und wichtigsten Schritte in einer Programmiersprache tätigen und mit den Grundlagen vertraut werden. Dazu ist C# ebenso gut wie eine der genannten Möglichkeiten und auf Grund der genannten Vorteile sogar eine hervorragende Einsteigerprogrammier-sprache. Sie können sich zunächst sehr darauf fokussieren wie Programmiercode funktioniert und müssen sich nicht übermäßig mit der dahinterliegenden Speichertheorie auseinandersetzten, da die Laufzeitumgebung für Sie ‚mitdenkt‘.
Das Erstellen von Programmen kann komplex und fehleranfällig sein. Um in einem Projekt den Überblick zu behalten, ist es daher gang und gäbe sich helfen zu lassen.
Die Software die dazu genutzt werden kann nennt sich Entwicklungsumgebung oder Code Editor und ist vor allem dafür zuständig, dass die Syntax korrekt ist. Das heißt es findet eine Fehlererkennung statt, ähnlich wie die Rechtschreibhilfe in Text - Programmen. Auch eine angenehme Farbgebung und Hervorhebung von zusammenhängenden Elementen ist üblich. Des Weiteren werden alle Bestandteile des Programms übersichtlich in Projekten sortiert und Sie können sich ausschließlich auf das Programmieren konzentrieren. Sind Sie sich nicht sicher, ob ein Code so funktioniert wie beabsichtigt, so kann dieser mit einem Tastendruck testweise kompiliert und ausgeführt werden.
Wie im aktuellen Zeitalter gewohnt gibt es auf dem freien Markt eine diverse Auswahl von verschiedenen Code - Editoren oder Entwicklungsumgebungen, welche auch unter dem englischen Namen IDE (Integrated Development Environment) bekannt sind.
Abbildung 1 – Windows Explorer - Optionen
Es besteht die Möglichkeit, dass die Dateiendungen bestimmter Dateitypen in der Ordnerstruktur des Windows - Explorer ausge-
blendet werden.
