Задаване на незадължителни аргументи за аргументи те

Дата на създаване на страница :

Незадължителните аргументи ви позволяват да дадете начална стойност на аргумент, без да претоварвате метод с различен брой аргументи.

Обаче само константи като "10", "Пример" и "null" могат да бъдат указани като незадължителни аргументи и не можете да зададете стойност, която е създадена в нов или дефиниран от статично четене, която се определя при стартиране на програмата.

Същото важи и ако структурата е аргумент. Например ако типът е IntPtr, не можете да зададете IntPtr.Zero като начална стойност. Той не може да зададе 0 и не може да бъде null, защото е структура. (Nullable ви позволява да зададете null, но изключва, защото типът на аргумента се променя.)

Можете да използвате "default(T) за използване на структурата като незадължителен аргумент.) Това е еквивалентно на стойността, създадена с нов T().

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

Можете да зададете само 0 или null за всяка стойност в структурата, така че претоварвайте метода, ако искате да дадете първоначалната стойност отделно.