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.