DefaultParameterValueAttribute Třída

Definice

Nastaví výchozí hodnotu parametru při zavolání z jazyka, který podporuje výchozí parametry. Tato třída se nemůže dědit.

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
Dědičnost
DefaultParameterValueAttribute
Atributy

Příklady

Následující příklad kódu ukazuje, jak použít DefaultParameterValueAttribute atribut na parametr metody napsané v jazyce C#. Fragment kódu také používá OptionalAttribute atribut k povolení volat metodu bez argumentů.

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
    }    
}

Mezi volitelnými argumenty jazyka C# a použitím v jazyce DefaultParameterValueAttributeOptionalAttributeC# existují určité rozdíly v chování . Následující fragment kódu ukazuje tyto rozdíly.

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
}

Poznámky

Atribut DefaultParameterValueAttribute umožňuje zadat výchozí hodnotu parametru v jazyce, který jinak nepodporuje výchozí parametry. Po použití tohoto atributu u kódu můžou jazyky, které podporují výchozí parametry, použít zadanou hodnotu jako výchozí parametr.

Zvlášť DefaultParameterValueAttribute užitečné je zadat výchozí parametry pro metody rozhraní zprostředkovatele komunikace modelu COM.

Konstruktory

Name Description
DefaultParameterValueAttribute(Object)

Inicializuje novou instanci DefaultParameterValueAttribute třídy s výchozí hodnotou parametru.

Vlastnosti

Name Description
TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)
Value

Získá výchozí hodnotu parametru.

Metody

Name Description
Equals(Object)

Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí kód hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro