Optionale Argumente für Strukturargumente angeben

Erstellungsdatum der Seite :

Optionale Argumente ermöglichen es Ihnen, einem Argument einen Anfangswert zu geben, ohne eine Methode mit einer anderen Anzahl von Argumenten zu überlasten.

Allerdings können nur Konstanten wie "10", "Sample" und "null" als optionale Argumente angegeben werden, und Sie können keinen Wert angeben, der in neu erstellt oder durch statisches Schreibgerät definiert wurde, das beim Laufen des Programms bestimmt wird.

Dasselbe gilt, wenn es sich bei der Struktur um ein Argument handelt. Wenn der Typ z. B. IntPtr ist, können Sie IntPtr.Zero nicht als Anfangswert angeben. Sie kann nicht 0 angeben, und sie kann nicht NULL sein, da es sich um eine Struktur handelt. (Nullable ermöglicht es Ihnen, null anzugeben, schließt aber aus, da sich der Typ des Arguments ändert.)

Sie können "default(T) verwenden, um die Struktur als optionales Argument zu verwenden.) Dies entspricht dem Wert, der mit dem neuen T() erstellt wurde.

public void DoAction(IntPtr handle = default(IntPtr))
{
  // 処理
}

Sie können nur 0 oder null für jeden Wert in der Struktur angeben, also überladen Sie die Methode, wenn Sie einen Anfangswert separat angeben möchten.