Tentukan argumen opsional untuk argumen struktur

Tanggal pembuatan halaman :

Argumen opsional memungkinkan Anda memberikan nilai awal pada argumen tanpa overloading metode dengan jumlah argumen yang berbeda.

Namun, hanya konstanta seperti "10", "contoh" dan "null" dapat ditetapkan sebagai argumen opsional, dan Anda tidak dapat menentukan nilai yang dibuat di baru atau didefinisikan oleh statis readonly yang ditentukan saat menjalankan program.

Hal yang sama berlaku jika struktur adalah argumen. Sebagai contoh, jika jenis IntPtr, Anda tidak dapat menentukan IntPtr. Zero sebagai nilai awal. Tidak dapat menentukan 0, dan tidak boleh kosong karena struktur. (Nullable memungkinkan Anda untuk menentukan null, tetapi tidak termasuk karena jenis argumen berubah.)

Anda dapat menggunakan "default (T) untuk menggunakan struktur sebagai argumen opsional.) Ini setara dengan nilai yang dibuat dengan T () baru.

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

Anda hanya dapat menentukan 0 atau null untuk setiap nilai dalam struktur, sehingga overload metode jika Anda ingin memberikan nilai awal secara terpisah.