DefaultParameterValueAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Ustawia wartość domyślną parametru po wywołaniu z języka, który obsługuje parametry domyślne. Klasa ta nie może być dziedziczona.
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
- Dziedziczenie
- Atrybuty
Przykłady
Poniższy przykład kodu pokazuje, jak zastosować DefaultParameterValueAttribute atrybut do parametru metody napisanej w języku C#. Fragment kodu używa również atrybutu OptionalAttribute , aby umożliwić wywoływanie metody bez żadnych argumentów.
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
}
}
Istnieją pewne różnice w zachowaniu między opcjonalnymi argumentami języka C# i używaniem z programem DefaultParameterValueAttributeOptionalAttribute. Poniższy fragment kodu pokazuje te różnice.
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
}
Uwagi
Atrybut DefaultParameterValueAttribute umożliwia określenie domyślnej wartości parametru w języku, który w przeciwnym razie nie obsługuje parametrów domyślnych. Po zastosowaniu tego atrybutu do kodu języki, które obsługują parametry domyślne, mogą używać określonej wartości jako parametru domyślnego.
Jest DefaultParameterValueAttribute to szczególnie przydatne do określenia domyślnych parametrów dla metod interfejsu międzyoperacyjności MODELU COM.
Konstruktory
DefaultParameterValueAttribute(Object) |
Inicjuje DefaultParameterValueAttribute nowe wystąpienie klasy z wartością domyślną parametru. |
Właściwości
TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego elementu Attribute. (Odziedziczone po Attribute) |
Value |
Pobiera wartość domyślną parametru. |
Metody
Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone po Attribute) |
GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
IsDefaultAttribute() |
W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej. (Odziedziczone po Attribute) |
Match(Object) |
W przypadku zastąpienia w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie obiektu, którego można użyć do pobrania informacji o typie interfejsu. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po Attribute) |