DefaultParameterValueAttribute Osztály

Definíció

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
DefaultParameterValueAttribute
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)

A következőre érvényes: