Задаване на незадължителни аргументи за аргументи те
Незадължителните аргументи ви позволяват да дадете начална стойност на аргумент, без да претоварвате метод с различен брой аргументи.
Обаче само константи като "10", "Пример" и "null" могат да бъдат указани като незадължителни аргументи и не можете да зададете стойност, която е създадена в нов или дефиниран от статично четене, която се определя при стартиране на програмата.
Същото важи и ако структурата е аргумент. Например ако типът е IntPtr, не можете да зададете IntPtr.Zero като начална стойност. Той не може да зададе 0 и не може да бъде null, защото е структура. (Nullable ви позволява да зададете null, но изключва, защото типът на аргумента се променя.)
Можете да използвате "default(T) за използване на структурата като незадължителен аргумент.) Това е еквивалентно на стойността, създадена с нов T().
public void DoAction(IntPtr handle = default(IntPtr))
{
// 処理
}
Можете да зададете само 0 или null за всяка стойност в структурата, така че претоварвайте метода, ако искате да дадете първоначалната стойност отделно.