تحديد وسيطات اختيارية لوسيطات البنية

تاريخ إنشاء الصفحة :

تسمح لك الوسيطات الاختيارية بإعطاء قيمة أولية لوسيطة دون تحميل أسلوب بعدد مختلف من الوسائط.

ومع ذلك، يمكن تحديد ثوابت فقط مثل "10" و "عينة" و "فارغة" كوسيطات اختيارية، ولا يمكنك تحديد قيمة تم إنشاؤها في جديد أو تعريفبواسطة readonly ثابت يتم تحديده عند تشغيل البرنامج.

وينطبق الشيء نفسه إذا كان الهيكل حجة. على سبيل المثال، إذا كان النوع IntPtr، لا يمكنك تحديد IntPtr.Zero كقيمة أولية. لا يمكن تحديد 0، ولا يمكن أن يكون خالياً لأنه بنية. (يسمح لك Nullable بتحديد فارغة، ولكن يستبعد لأن نوع الوسيطة يتغير.)

يمكنك استخدام "الافتراضي (T) لاستخدام البنية كوسيطة اختيارية.) وهذا يعادل القيمة التي تم إنشاؤها باستخدام T().

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

يمكنك فقط تحديد 0 أو فارغة لكل قيمة في البنية، لذلك الزائد الأسلوب إذا كنت تريد إعطاء قيمة أولية بشكل منفصل.