Lädt...

Parameter

Schreibe eine Methode namens greet, die ein Wort hereinnimmt. In die Klammern schreibe string name. Im Rumpf schreibe hi, ein Leerzeichen und dann name mit Console.WriteLine("hi " + name);. Aus Main rufe greet("lena"); auf. Der Bildschirm sollte eine Zeile zeigen: hi lena. Die Buchstaben lena stehen nicht fest im Methodenkörper. Sie kommen über den Aufruf und sitzen für diesen Durchlauf im Namen name. Diese Übergabe lehrt diese Seite. Behalte den öffentlichen Klassennamen Pine.

Ein Name in den Klammern

Auf der Methoden-Seite blieben die Klammern nach ring leer. Die Schreibzeile war immer ding. Hier halten die Klammern einen typisierten Namen, damit jeder Aufruf einen anderen Wert senden kann. Dieser typisierte Name ist ein Parameter. Der Wert, den du im Aufruf schreibst, ist das Argument für diesen Durchlauf.
Öffne die Pine-Datei. Der Klassenname bleibt Pine. Diese Seite benennt den Typ nicht um. Lösche jede ring();-Demo mit leeren Klammern, falls das noch alles ist, was Main hält und du für die Form dieser Seite bereit bist. Lösche jedes übrig gebliebene foreach. Lösche jede ReadLine-Zeile. Die Datei, die du behältst, wartet nicht auf Tippen.
Außerhalb von Main, noch in den geschweiften Klammern der Klasse, beginnt der Header in dieser Anfängerform mit static void. Zwischen den Klammern sitzen string und dann name — zuerst der Typ, dann der Parametername. C# schreibt den Typ string in dieser Form mit kleinem s. Der Rumpf nutzt name ohne Anführungszeichen darum, verbunden mit dem festen Text "hi " durch ein Plus. Anführungszeichen um "hi " markieren die festen Buchstaben. Das nackte name markiert den Wert, der vom Aufruf kam. Speichere die Datei vor dem Start. Das vollständige erste Programm steht im nächsten Kasten.

Die Datei, die du behältst

Das ist die Version, die du zuerst startest. Main hält den Aufruf mit einem Wert in den Klammern. greet hält die Schreibzeile, die diesen Wert nutzt.

greet takes a string

csharp
using System;

public class Pine
{
    public static void Main()
    {
        greet("lena");
    }

    static void greet(string name)
    {
        Console.WriteLine("hi " + name);
    }
}

Lies es von oben. using System; bereitet kurze Namen vor. public class Pine benennt den Typ. public static void Main() ist der Startpunkt der Laufzeit. Der Aufruf greet("lena"); sendet den Text in den Parameter. static void greet(string name) hält Console.WriteLine("hi " + name);. Eine Zeile auf dem Bildschirm: hi lena.

Starte mit dotnet run. Das Programm schreibt eine Zeile und stoppt. Es wartet nicht, bis du tippst. Wenn dotnet run wartet, ist ReadLine noch in der Datei. Lösche diese Zeile und behalte greet("lena"); plus die greet-Methode darüber. Der Bildschirm zeigt hi lena. Wenn der Bildschirm nur ding zeigt, läuft noch ein alter ring();-Aufruf. Wenn der Bildschirm die Buchstaben name zeigt, hat eine Schreibzeile Anführungszeichen um dieses Wort: Console.WriteLine("name");. Du installierst das .NET SDK nicht neu wegen eines Bildschirms mit der falschen Zeile.

Geh einen vollständigen Lauf der Reihe nach durch. C# startet bei Main. Der Aufruf greet("lena"); sendet den Text lena in den Parameter name. Innerhalb von greet baut WriteLine hi, ein Leerzeichen und dann diesen Wert, sodass der Bildschirm hi lena zeigt. Dann endet greet und Main endet. Du hast nicht Console.WriteLine("hi lena"); in Main geschrieben. Du hast den festen Teil einmal unter greet geschrieben und lena aus dem Aufruf übergeben.
Der Parameter ist leer, bis der Aufruf ihn füllt. Beim ersten Aufruf hält name nur für diesen Durchlauf lena. Bei einem späteren Aufruf mit "sam" hält derselbe Parametername einen anderen Wert. Du erstellst keine zweite Methode für das zweite Wort; du sendest ein neues Argument in denselben Header.

Dieselbe Methode, andere Wörter

Ändere nur Main, sodass es greet zweimal mit zwei verschiedenen Argumenten aufruft. Lass die greet-Methode selbst in Ruhe.

greet with two arguments

csharp
using System;

public class Pine
{
    public static void Main()
    {
        greet("lena");
        greet("sam");
    }

    static void greet(string name)
    {
        Console.WriteLine("hi " + name);
    }
}

Das ist die zweite Datei. Sie lehrt dieselbe Methode mit zwei Aufrufen. Starte dotnet run. Der Bildschirm sollte zwei Zeilen zeigen: hi lena, dann hi sam. Der erste Aufruf füllt name mit lena. Der zweite Aufruf füllt name mit sam. Du hast WriteLine unter greet nicht kopiert. Du hast nur die Werte in den Aufrufen geändert.
Wenn du greet() mit leeren Klammern aufrufst, während der Header noch string name sagt, schreibt der Build einen Fehler — der Aufruf muss ein string liefern. Wenn du ein altes ring(); mit leeren Klammern von der Methoden-Seite im selben Main lässt, passt dieser Aufruf nicht zu greet, und eine übrig gebliebene ring-Methode kann neben deinen hi-Zeilen noch ding schreiben. Räume Main auf die greet-Aufrufe auf, die diese Lektion braucht. Nachdem du zwei Zeilen gesehen hast, lege die behaltene Ein-Aufruf-Datei zurück, falls das die Form ist, die du speichern willst: ein greet("lena"); in Main.

Eine ganze Zahl als Wert

Parameter sind nicht nur für Text. Schreibe eine zweite Methode, die ein int namens n nimmt und es schreibt. Rufe sie aus Main mit ganzen Zahlen wie show(9); und show(4); auf.

show takes an int

csharp
using System;

public class Pine
{
    public static void Main()
    {
        show(9);
        show(4);
    }

    static void show(int n)
    {
        Console.WriteLine(n);
    }
}

Das ist die dritte Datei. Es ist nicht die Datei, die du für die greet-Form behältst. Starte dotnet run. Der Bildschirm sollte zwei Zeilen zeigen: 9, dann 4. Keine Anführungszeichen umschließen 9 oder 4 im Aufruf — sie sind int-Werte, kein Text. Innerhalb von show schreibt Console.WriteLine(n) die angekommene Zahl. Nachdem du diese zwei Zeilen gesehen hast, lege die greet-Demo zurück. Beide Versionen sind gültiges C#. Sie lehren dieselbe Idee: der Aufruf sendet einen Wert, der Parameter hält ihn für den Rumpf.
Lies den int-Lauf noch einmal. Der erste Aufruf setzt n auf 9 und schreibt 9. Der zweite Aufruf setzt n auf 4 und schreibt 4. Der Name n wird einmal im Header als int n deklariert. Jeder Aufruf gibt ihm für diesen Durchlauf einen neuen Wert. Ein zitiertes Wort an show zu übergeben, etwa show("nine");, passt nicht zu int in dieser Form — der Build schreibt einen Fehler. Eine nackte Zahl an greet zu übergeben, etwa greet(3);, passt nicht zu string — der Build schreibt wieder einen Fehler. Passe den Argumenttyp an den Parametertyp an.

Eine häufige Verwechslung ist, den Parameternamen als Text zu schreiben: Console.WriteLine("name");. Das schreibt die Buchstaben n-a-m-e. Es schreibt nicht lena. Behalte Console.WriteLine("hi " + name) ohne Anführungszeichen um name, wenn du die Buchstaben des Arguments auf dem Bildschirm willst. Eine andere Verwechslung ist, den Parameter in Main statt im Methodenheader zu deklarieren. Der typisierte Name gehört in greet(...) oder show(...), nicht in die Klammern von Main auf dieser Seite. Leere () von der ring-Seite reichen nicht, sobald der Header string name verlangt.

void bedeutet weiterhin, dass nichts über den Aufruf zurückkommt. Du kannst string name oder int n in die Klammern einer Methode setzen, einen passenden Wert im Aufruf übergeben und diesen Wert aus dem Rumpf schreiben. Zwei Aufrufe mit zwei Argumenten schreiben zwei unterschiedliche Zeilen, ohne die Methode zu kopieren. Die nächste Seite ist return, wo eine Methode einen Wert an Main zurückgibt, statt nur im Rumpf zu schreiben.

Der Bildschirm hält das Argument

Die Datei, die du behältst, schreibt hi lena, wenn Main greet("lena"); aufruft. Der Name name steht in der Schreibzeile ohne Anführungszeichen darum. Anführungszeichen um name schreiben Buchstaben, nicht das Argument. Leere () beim Aufruf passen nicht zu einem Header, der string name verlangt.

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
5
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt