DefaultParameterValueAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Beállítja egy paraméter alapértelmezett értékét, amikor az alapértelmezett paramétereket támogató nyelvről hív meg. Ez az osztály nem örökölhető.
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
- Öröklődés
- Attribútumok
Példák
Az alábbi példakód bemutatja, hogyan alkalmazhatja az DefaultParameterValueAttribute attribútumot egy C#-ban írt metódus paraméterére. A kódrészlet az OptionalAttribute attribútum használatával is lehetővé teszi a metódus argumentumok nélküli meghívását.
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
}
}
A C# nem kötelező argumentumai és a DefaultParameterValueAttributehasználata OptionalAttribute között bizonyos viselkedésbeli különbségek vannak. Az alábbi kódrészlet ezeket a különbségeket mutatja be.
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
}
Megjegyzések
Az DefaultParameterValueAttribute attribútum lehetővé teszi egy alapértelmezett paraméterérték megadását olyan nyelven, amely egyébként nem támogatja az alapértelmezett paramétereket. Miután alkalmazza ezt az attribútumot a kódra, az alapértelmezett paramétereket támogató nyelvek alapértelmezett paraméterként használhatják a megadott értéket.
Ez DefaultParameterValueAttribute különösen hasznos a COM interop felület metódusainak alapértelmezett paramétereinek megadásához.
Konstruktorok
| Name | Description |
|---|---|
| DefaultParameterValueAttribute(Object) |
Inicializálja az DefaultParameterValueAttribute osztály új példányát egy paraméter alapértelmezett értékével. |
Tulajdonságok
| Name | Description |
|---|---|
| TypeId |
Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap. (Öröklődés forrása Attribute) |
| Value |
Lekéri egy paraméter alapértelmezett értékét. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal. (Öröklődés forrása Attribute) |
| GetHashCode() |
A példány kivonatkódját adja vissza. (Öröklődés forrása Attribute) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsDefaultAttribute() |
Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke. (Öröklődés forrása Attribute) |
| Match(Object) |
Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e. (Öröklődés forrása Attribute) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Névkészletet képez le a küldési azonosítók megfelelő készletére. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1). (Öröklődés forrása Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz. (Öröklődés forrása Attribute) |