تعیین آرگومان اختیاری برای آرگومان ساختار

تاریخ ایجاد صفحه :

آرگومان های اختیاری به شما اجازه می دهد که یک مقدار اولیه را به یک آرگومان بدون سربارگذاری یک روش با تعداد دیگری از آرگومان ها بدهید.

با این حال ، تنها ثابت هایی مانند "10" ، "نمونه" و "null" را می توان به عنوان آرگومان اختیاری مشخص کرد و شما نمی توانید یک مقدار را که در جدید ایجاد شده یا تعریف شده توسط فقط خواندنی استاتیک مشخص شده است که زمانی که برنامه اجرا می شود تعیین می کند.

همان درست است اگر ساختار استدلال است. به عنوان مثال ، اگر نوع IntPtr باشد ، شما نمی توانید مشخص کنید IntPtr. Zero به عنوان مقدار اولیه. این نمی تواند 0 را مشخص کند ، و نمی تواند null باشد زیرا یک ساختار است. (Nullable اجازه می دهد تا شما را به مشخص null, اما مانع به دلیل نوع استدلال تغییر.)

شما می توانید از "پیش فرض (T) برای استفاده از ساختار به عنوان یک آرگومان اختیاری استفاده کنید.) این معادل با ارزش ایجاد شده با T جدید () است.

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

شما فقط می توانید 0 یا null را برای هر مقدار در ساختار مشخص کنید ، بنابراین اگر می خواهید یک مقدار اولیه را به طور جداگانه انجام دهید ، روش را اضافه نکنید.