Arbeiten mit .NET: C-Sharp/ Materialien/ Ein Beispielprogramm
Wir kennen das alle: Da hat man schon eine neue Programmiersprache entdeckt, und dann soll man auch noch diese ganzen Definitionen, Beschreibungen, Erklärungen und Erklärungen für Erklärungen lesen. Dabei fiebert man doch eigentlich dem ersten Praxistest entgegen: Was kann diese Sprache? Ist das wirklich so leicht? Wie macht man dies oder jenes? Was passiert eigentlich, wenn ... ?
Als ultimative Antwort auf all diese Fragen gibt's hier eine fix und fertige "Spielwiese", in der wir uns schon mal nach Herzenslust austoben können. Falsch machen kann man dabei gar nichts. Im schlimmsten Fall muss eben der ganze Quelltext noch einmal von dieser Seite kopiert werden. Also: Nur keine Hemmungen! - Kopiere einfach den gesamten Quelltext in deine Entwicklungsumgebung und teste C#! Schneller kannst du nicht lernen.
Tipp: Verändere das Programm; teste, was wie funktioniert; probiere aus, was Fehler verursacht. Alle wichtigen Zeilen wurden mit Kommentaren versehen. Dort findest du auch ein paar Stichworte, worum es in diesen Zeilen geht. Und wenn du Fragen hast, schaust du in das Buch und suchst dir die interessanten Artikel heraus. Und wer weiß? Vielleicht stellst du schon morgen eine Spielwiese C# Version 2 hier ein, um den Leuten zu zeigen, was noch alles geht? |
Quelltext: Spielwiese C#
[Bearbeiten]using System; namespace Spielwiese { class Program { // Haupteinstieg für die Anwendung. // Stichworte: // Klassen, Methoden, statische Methoden, Parameter static void Main(string[] args) { // Stichworte: // Schleifen, Kopfgesteuerte Schleifen, Foreach foreach(string arg in args) { // Textausgabe auf dem Bildschirm Console.WriteLine("Übergebener Parameter: {0}", arg); } // Wir probieren den Aufruf einer Methode aus. Console.WriteLine(""); Console.WriteLine("Wir testen den Aufruf einer Methode:"); TesteKlasse(); // Wir probieren Vererbung aus. Console.WriteLine(""); Console.WriteLine("Wir testen die Vererbung:"); TesteVererbung(); // Wir warten, // bis der Benutzer [ENTER] drückt. Console.WriteLine(""); Console.WriteLine("Test beendet. Warte auf [Enter]."); Console.ReadLine(); } // Eine statische Methode. // Stichworte: // Klassen, Methoden, statische Methoden, Parameter, Zugriffsmodifizierer static public int Addiere(int zahl1, int zahl2) { // Wir berechnen das Ergebnis // und geben es zurück. return zahl1 + zahl2; } // Eine statische Methode. // Stichworte: // Klassen, Methoden, statische Methoden, Parameter, Zugriffsmodifizierer static public void TesteKlasse() { // Wir holen uns ein Objekt der Klasse NeueSpielwiese. // Stichworte: // Klassen, Objekte, Vererbung NochNeuereSpielwiese neuesteSpielwiese = new NochNeuereSpielwiese(); // Stichworte: // Polymorphie, Überladen float ergebnis = neuesteSpielwiese.Subtrahiere(1.2f, 2.3f); Console.WriteLine("Das Ergebnis der Subtraktion der überladenen Methode mit zwei Parametern lautet: {0}", ergebnis); // Stichworte: // Polymorphie, Überladen ergebnis = neuesteSpielwiese.Subtrahiere(1.2f, 2.3f, 3.4f); Console.WriteLine("Das Ergebnis der Subtraktion der überladenen Methode mit drei Parametern lautet: {0}", ergebnis); } static void TesteVererbung() { // Wir holen uns ein Objekt. // Stichworte: // Klassen, Objekte, Vererbung NochNeuereSpielwiese neuesteSpielwiese = new NochNeuereSpielwiese(); Console.WriteLine("Der Name der Subklasse lautet: {0}", neuesteSpielwiese.Name); } // Eine private Klassenvariable. // Stichworte: // Klassen, Variablen, Klassenvariablen, // Zugriffsmodifizierer, Modifizierer private static string m_Name = "Spielwiese"; // Eine statische Eigenschaft. // Stichworte: // Klassen, Eigenschaften, // Zugriffsmodifizierer, Modifizierer static private string Name { // Was soll geschehen, // wenn jemand den Namen wissen will? // Stichworte: // Klassen, Eigenschaften get { return m_Name; } // Was soll geschehen, // wenn jemand den Namen schreiben will? // Stichworte: // Klassen, Eigenschaften set { m_Name = value; } } }
// Eine andere Klasse. // Stichworte: // Klassen, Zugriffsmodifizierer, Modifizierer abstract class NeueSpielwiese { // Eine geschützte Klassenvariable. // Stichworte: // Klassen, Variablen, Klassenvariablen, // Zugriffsmodifizierer, Modifizierer protected string m_Name = "Spielwiese 2"; // Eine Eigenschaft. // Stichworte: // Klassen, Eigenschaften, // Zugriffsmodifizierer, Modifizierer public string Name { // Was soll geschehen, // wenn jemand den Namen wissen will? // Stichworte: // Klassen, Eigenschaften get { return m_Name; } // Was soll geschehen, // wenn jemand den Namen schreiben will? // Stichworte: // Klassen, Eigenschaften set { m_Name = value; } } // Der Konstruktor // Stichworte: // Klassen, Konstruktoren, Zugriffsmodifizierer protected NeueSpielwiese() { } // Eine abstrakte Methode. // Stichworte: // Klassen, Methoden, Polymorphie, Überladen, // Zugriffsmodifizierer, Modifizierer abstract public string UeberschriebeneMethode(); }
// Noch eine andere Klasse // Stichworte: // Klassen, Vererbung, // Zugriffsmodifizierer, Modifizierer class NochNeuereSpielwiese : NeueSpielwiese { // Der Konstruktor // Stichworte: // Klassen, Konstruktoren, Zugriffsmodifizierer public NochNeuereSpielwiese() { m_Name = "Spielwiese 3"; } // Eine überschriebene Methode. // Stichworte: // Klassen, Methoden, Polymorphie, Überladen, // Zugriffsmodifizierer, Modifizierer public override string UeberschriebeneMethode() { return "Ich bin eine überschriebene Methode."; } // Eine überladene Methode. // Stichworte: // Klassen, Methoden, Polymorphie, Überladen, // Zugriffsmodifizierer, Modifizierer public float Subtrahiere(float zahl1, float zahl2) { float ergebnis = zahl1 - zahl2; return ergebnis; } // Eine überladene Methode. // Stichworte: // Klassen, Methoden, Polymorphie, Überladen, // Zugriffsmodifizierer, Modifizierer public float Subtrahiere(float zahl1, float zahl2, float zahl3) { float ergebnis = zahl1 - zahl2 - zahl3; return ergebnis; } } }
Wie bringe ich die Spielwiese zum Laufen?
[Bearbeiten]Ganz einfach:
- Kopiere den gesamten Quelltext von oben, also von using ... bis zur letzten }.
(Die optische Trennung dient nur der besseren Übersicht. Kopiere bitte den gesamten(!) Text des Beispiels.) - Füge ihn in deine Entwicklungsumgebung ein.
- Starte den Compiler.