Especificar argumentos opcionales para argumentos de estructura

Fecha de creación de la página :

Los argumentos opcionales permiten dar un valor inicial a un argumento sin sobrecargar un método con un número diferente de argumentos.

Sin embargo, solo las constantes como "10", "Sample" y "null" se pueden especificar como argumentos opcionales y no se puede especificar un valor creado en new o definido por static readonly que se determina cuando se ejecuta el programa.

Lo mismo es cierto si la estructura es un argumento. Por ejemplo, si el tipo es IntPtr, no puede especificar IntPtr.Zero como valor inicial. No puede especificar 0 y no puede ser null porque es una estructura. (Nullable permite especificar null, pero excluye porque cambia el tipo del argumento.)

Puede utilizar "default(T) para utilizar la estructura como argumento opcional.) Esto es equivalente al valor creado con new T().

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

Solo puede especificar 0 o null para cada valor de la estructura, por lo que sobrecargar el método si desea dar un valor inicial por separado.