Especificar argumentos opcionais para argumentos de estrutura

Data de criação de página :

Argumentos opcionais permitem que você dê um valor inicial a um argumento sem sobrecarregar um método com um número diferente de argumentos.

No entanto, apenas constantes como "10", "Sample" e "null" podem ser especificadas como argumentos opcionais, e você não pode especificar um valor que foi criado em leitura nova ou definida apenas que é determinado quando o programa é executado.

O mesmo é verdade se a estrutura for um argumento. Por exemplo, se o tipo for IntPtr, não poderá especificar IntPtr.Zero como o valor inicial. Não pode especificar 0, e não pode ser nulo porque é uma estrutura. (Nulo permite especificar nulo, mas exclui porque o tipo do argumento muda.)

Você pode usar "default(T) para usar a estrutura como argumento opcional.) Isso equivale ao valor criado com o novo T().

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

Você só pode especificar 0 ou nulo para cada valor na estrutura, então sobrecarregue o método se quiser dar um valor inicial separadamente.