Spécifier des arguments facultatifs pour les arguments de structure

Date de création de la page :

Les arguments facultatifs vous permettent de donner une valeur initiale à un argument sans surcharger une méthode avec un nombre différent d’arguments.

Toutefois, seules les constantes telles que « 10 », « Échantillon » et « nul » peuvent être spécifiées comme des arguments facultatifs, et vous ne pouvez pas spécifier une valeur qui a été créée en lecture nouvelle ou définie par la lecture statique qui est déterminée lorsque le programme s’exécute.

Il en va de même si la structure est un argument. Par exemple, si le type est IntPtr, vous ne pouvez pas spécifier IntPtr.Zero comme valeur initiale. Il ne peut pas spécifier 0, et il ne peut pas être nul parce qu’il s’agit d’une structure. (Nullable vous permet de spécifier nul, mais exclut parce que le type de l’argument change.)

Vous pouvez utiliser "par défaut(T) pour utiliser la structure comme argument facultatif.) Ceci est équivalent à la valeur créée avec le nouveau T().

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

Vous ne pouvez spécifier que 0 ou nul pour chaque valeur de la structure, afin de surcharger la méthode si vous voulez donner une valeur initiale séparément.