DefaultParameterValueAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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é pomocí atributu OptionalAttribute umožňuje 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
}
}
Existují určité rozdíly v chování mezi volitelnými argumenty jazyka C# a použitím DefaultParameterValueAttribute s OptionalAttribute. 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 na kód můžou jazyky, které podporují výchozí parametry, používat zadanou hodnotu jako výchozí parametr.
Je DefaultParameterValueAttribute zvlášť užitečný k určení výchozích parametrů pro metody rozhraní zprostředkovatele com.
Konstruktory
DefaultParameterValueAttribute(Object) |
Inicializuje novou instanci DefaultParameterValueAttribute třídy s výchozí hodnotou parametru. |
Vlastnosti
TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu . (Zděděno od Attribute) |
Value |
Získá výchozí hodnotu parametru. |
Metody
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. (Zděděno od Attribute) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
IsDefaultAttribute() |
Při přepsání v odvozené třídě označuje, zda je hodnota této instance 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á označuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
_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) |