CallerMemberNameAttribute Osztály

Definíció

Címkék paraméter, amelyet adott hívótag nevével kell kitölteni.

public ref class CallerMemberNameAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Parameter, Inherited=false)]
public sealed class CallerMemberNameAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Parameter, Inherited=false)>]
type CallerMemberNameAttribute = class
    inherit Attribute
Public NotInheritable Class CallerMemberNameAttribute
Inherits Attribute
Öröklődés
CallerMemberNameAttribute
Attribútumok

Példák

Az alábbi példa az attribútum használatát CallerMemberName mutatja be. A metódus minden hívása TraceMessage esetén a hívó adatai argumentumként lesznek helyettesítve az opcionális paraméterre.

public void DoProcessing()
{
    TraceMessage("Something happened.");
}

public void TraceMessage(string message,
        [System.Runtime.CompilerServices.CallerMemberName] string memberName = "",
        [System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "",
        [System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0)
{
    System.Diagnostics.Trace.WriteLine("message: " + message);
    System.Diagnostics.Trace.WriteLine("member name: " + memberName);
    System.Diagnostics.Trace.WriteLine("source file path: " + sourceFilePath);
    System.Diagnostics.Trace.WriteLine("source line number: " + sourceLineNumber);
}

// Sample Output:
//  message: Something happened.
//  member name: DoProcessing
//  source file path: c:\Users\username\Documents\Visual Studio 2012\Projects\CallerInfoCS\CallerInfoCS\Form1.cs
//  source line number: 31
Private Sub DoProcessing()
    TraceMessage("Something happened.")
End Sub

Public Sub TraceMessage(message As String,
        <System.Runtime.CompilerServices.CallerMemberName> Optional memberName As String = Nothing,
        <System.Runtime.CompilerServices.CallerFilePath> Optional sourcefilePath As String = Nothing,
        <System.Runtime.CompilerServices.CallerLineNumber()> Optional sourceLineNumber As Integer = 0)

    System.Diagnostics.Trace.WriteLine("message: " & message)
    System.Diagnostics.Trace.WriteLine("member name: " & memberName)
    System.Diagnostics.Trace.WriteLine("source file path: " & sourcefilePath)
    System.Diagnostics.Trace.WriteLine("source line number: " & sourceLineNumber)
End Sub

' Sample output:
'   message: Something happened.
'   member name: DoProcessing
'   source file path: C:\Users\username\Documents\Visual Studio 2012\Projects\CallerInfoVB\CallerInfoVB\Form1.vb
'   source line number: 15

Megjegyzések

Az attribútumot CallerMemberName egy alapértelmezett értékkel rendelkező opcionális paraméterre alkalmazza. Meg kell adnia egy explicit alapértelmezett értéket az opcionális paraméterhez. Ezt az attribútumot nem alkalmazhatja olyan paraméterekre, amelyek nem választhatóként nincsenek megadva.

További információ: Hívó információ.

Az CallerMemberName attribútum használatával elkerülheti, hogy a tag nevét String argumentumként adja meg a hívott metódushoz. Ezzel a technikával elkerülheti azt a problémát, hogy a refactoring keretében történő átnevezés nem módosítja az String értékeket. Ez különösen a következő feladatokhoz hasznos:

  • Nyomkövetési és diagnosztikai rutinok használata.

  • Az interfész implementálása adatok hozzárendelésekor INotifyPropertyChanged. Ez az interfész lehetővé teszi, hogy egy objektum tulajdonsága értesítse a kötött vezérlőelemet arról, hogy a tulajdonság megváltozott, így a vezérlő megjelenítheti a frissített információkat. Az CallerMemberName attribútum nélkül a tulajdonság nevét literálként kell megadnia.

Az alábbi diagram az attribútum használatakor CallerMemberName visszaadott tagneveket mutatja.

A hívás a Felhasználói név eredménye
Metódus, tulajdonság vagy esemény Annak a metódusnak, tulajdonságnak vagy eseménynek a neve, amelyből a hívás származik.
Constructor A '.ctor' karakterlánc
Statikus konstruktor A ".cctor" sztring
Destruktor "Véglegesítés" karakterlánc
Felhasználó által definiált operátorok vagy konverziók A tag generált neve, például "op_Addition".
Attribútumkonstruktor Annak a tagnak a neve, amelyre az attribútumot alkalmazza. Ha az attribútum egy tag bármely eleme (például paraméter, visszatérési érték vagy általános típusparaméter), ez az eredmény annak a tagnak a neve, amely az adott elemhez van társítva.
Nem tartalmaz tagot (például szerelvényszintű vagy típusokra alkalmazott attribútumokat) Az opcionális paraméter alapértelmezett értéke.

Konstruktorok

Name Description
CallerMemberNameAttribute()

Inicializálja a CallerMemberNameAttribute osztály új példányát.

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)

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:

Lásd még