DefaultParameterValueAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit la valeur par défaut d'un paramètre quand il est appelé à partir d'un langage qui prend en charge les paramètres par défaut. Cette classe ne peut pas être héritée.
public ref class DefaultParameterValueAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Parameter)]
public sealed class DefaultParameterValueAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Parameter)>]
type DefaultParameterValueAttribute = class
inherit Attribute
Public NotInheritable Class DefaultParameterValueAttribute
Inherits Attribute
- Héritage
- Attributs
Exemples
L’exemple de code suivant montre comment appliquer l’attribut DefaultParameterValueAttribute à un paramètre d’une méthode écrite en C#. L’extrait de code utilise également l’attribut OptionalAttribute pour permettre à la méthode d’être appelée sans arguments.
using System;
using System.Runtime.InteropServices;
public class Program
{
public static void MethodWithDefaultParam([Optional, DefaultParameterValue("DEFAULT_PARAM_VALUE")] string str)
{
Console.WriteLine($"The passed value is: {str}");
}
public static void Main()
{
MethodWithDefaultParam(); // The passed value is: DEFAULT_PARAM_VALUE
MethodWithDefaultParam("NEW_VALUE"); // The passed value is: NEW_VALUE
}
}
Il existe des différences de comportement entre les arguments facultatifs C# et l’utilisation de DefaultParameterValueAttribute avec OptionalAttribute. L’extrait de code suivant illustre ces différences.
using System.Runtime.InteropServices;
public class Program
{
public static void MethodWithObjectDefaultAttr1([Optional, DefaultParameterValue(123)] object obj) {} // OK
public static void MethodWithObjectDefaultAttr2([Optional, DefaultParameterValue("abc")] object obj) {} // OK
public static void MethodWithObjectDefaultAttr3([Optional, DefaultParameterValue(null)] object? obj) {} // OK
public static void MethodWithObjectDefaultParam1(object obj = 123) {} // CS1763
public static void MethodWithObjectDefaultParam2(object obj = "abc") {} // CS1763
public static void MethodWithObjectDefaultParam3(object obj? = null) {} // OK
}
Remarques
L’attribut DefaultParameterValueAttribute vous permet de spécifier une valeur de paramètre par défaut dans une langue qui ne prend pas en charge les paramètres par défaut. Après avoir appliqué cet attribut à votre code, les langues qui prennent en charge les paramètres par défaut peuvent utiliser la valeur spécifiée comme paramètre par défaut.
Le DefaultParameterValueAttribute est particulièrement utile pour spécifier les paramètres par défaut pour les méthodes d’une interface d’interopérabilité COM.
Constructeurs
DefaultParameterValueAttribute(Object) |
Initialise une nouvelle instance de la classe DefaultParameterValueAttribute avec la valeur par défaut d'un paramètre. |
Propriétés
TypeId |
Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute. (Hérité de Attribute) |
Value |
Obtient la valeur par défaut d'un paramètre. |
Méthodes
Equals(Object) |
Retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
GetHashCode() |
Retourne le code de hachage de cette instance. (Hérité de Attribute) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
IsDefaultAttribute() |
En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée. (Hérité de Attribute) |
Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface. (Hérité de Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute) |