0Pricing
C# Academy · Lektion

Optionale/benannte Parameter; ref/out/in (Grundlagen)

Verwenden Sie optionale Parameter und benannte Argumente für mehr Klarheit, übergeben Sie Werte mit ref per Referenz und geben Sie zusätzliche Werte mit out zurück. Beachten Sie, dass in-Parameter in C# 6 nicht verfügbar sind.

Optionale/benannte Parameter; ref/out/in (Grundlagen) ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.

Lektionsübersicht

Ziel: Verwenden Sie optionale Parameter und benannte Argumente für bessere Lesbarkeit; verstehen Sie ref und out. Hinweis: in-Parameter sind in C# 6 nicht verfügbar.

Optionale Parameter

Fügen Sie Standardwerte hinzu, um einfache Anpassungen ohne zahlreiche Überladungen zu ermöglichen.

using System;

public static class Notifier
{
  // Optional parameter: suffix has a default value
  public static void Notify(string message, string suffix = "!")
  {
    Console.WriteLine(message + suffix);
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Notifier.Notify("Saved");          // uses "!"
    Notifier.Notify("Warning", "!!");  // overrides default
  }
}

Benannte Argumente

Benannte Argumente machen Aufrufe selbstdokumentierend und ermöglichen eine sichere Umordnung.

using System;

public static class Greeter
{
  public static void Greet(string name, string prefix, int repeat)
  {
    for (int i = 0; i < repeat; i = i + 1)
    {
      Console.WriteLine(prefix + " " + name);
    }
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    // Named args improve readability and allow reordering at call site
    Greeter.Greet(name: "Ada", prefix: "Hello", repeat: 2);
    Greeter.Greet(repeat: 1, name: "Alan", prefix: "Hi");
  }
}

ref-Parameter

ref übergibt eine Variable als Referenz; der Aufrufer muss sie zuvor initialisieren.

using System;

public static class RefDemo
{
  public static void Increment(ref int n)
  {
    n = n + 1; // modifies caller's variable
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    int value = 5;           // must be assigned before passing by ref
    RefDemo.Increment(ref value);
    Console.WriteLine("value = " + value); // 6
  }
}

out-Parameter

out ermöglicht es einer Methode, zusätzliche Werte über Parameter zurückzugeben; die Methode muss ihnen Werte zuweisen.

using System;

public static class OutDemo
{
  public static bool TryDivide(int a, int b, out int result)
  {
    if (b == 0)
    {
      result = 0;   // out must be assigned before return
      return false;
    }
    result = a / b;
    return true;
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    int r; // not required to be assigned before passing as out
    bool ok = OutDemo.TryDivide(9, 0, out r);
    Console.WriteLine("ok=" + ok + " r=" + r);
  }
}

Über "in" (C# 6)

Hinweis: in-Parameter (schreibgeschützt per Referenz) wurden in späteren C#-Versionen eingeführt. In C# 6 können Sie:

  • Für kleine Typen per Wert (als Kopie) übergeben
  • ref nur verwenden, wenn eine Veränderung erforderlich ist
  • Methodenparameter per Konvention als readonly behandeln (nicht erneut zuweisen)

Grundlagen zu ref und out

Kurze Frage: Welche Aussage über ref und out ist in C# 6 richtig?

Zusammenfassung

Zusammenfassung: Verwenden Sie optionale Parameter für Standardwerte, benannte Argumente für Klarheit, ref zum Verändern von Daten des Aufrufers und out zum Zurückgeben zusätzlicher Werte. C# 6 unterstützt keine in-Parameter.

Häufig gestellte Fragen

Ist die Lektion „Optionale/benannte Parameter; ref/out/in (Grundlagen)“ kostenlos?

Ja — der vollständige Text von „Optionale/benannte Parameter; ref/out/in (Grundlagen)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Optionale/benannte Parameter; ref/out/in (Grundlagen)“?

Verwenden Sie optionale Parameter und benannte Argumente für mehr Klarheit, übergeben Sie Werte mit ref per Referenz und geben Sie zusätzliche Werte mit out zurück. Beachten Sie, dass in-Parameter in… Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.

Wie lange dauert die Lektion „Optionale/benannte Parameter; ref/out/in (Grundlagen)“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Signaturen und Rückgaben; expr-bodied; optionale/benannte Parameter; ref/out; Überladen
  2. Optionale/benannte Parameter; ref/out/in (Grundlagen)
  3. Lokale Funktionen (Hinweis zu C# 6) und Überladen
← Zurück zu C# Academy