Especificar argumentos opcionais para argumentos de estrutura
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.