CallerMemberNameAttribute Sınıf

Tanım

Belirli arayan üye adıyla doldurulması gereken Etiketler parametresi.

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
Devralma
CallerMemberNameAttribute
Öznitelikler

Örnekler

Aşağıdaki örnekte özniteliğinin nasıl kullanılacağı gösterilmektedir CallerMemberName . yöntemine yapılan TraceMessage her çağrıda, çağıran bilgileri isteğe bağlı parametrenin bağımsız değişkeni olarak değiştirilir.

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

Açıklamalar

özniteliğini CallerMemberName , varsayılan değeri olan isteğe bağlı bir parametreye uygularsınız. İsteğe bağlı parametre için açık bir varsayılan değer belirtmeniz gerekir. Bu özniteliği isteğe bağlı olarak belirtilmeyen parametrelere uygulayamazsınız.

Özniteliği, üye adını çağrılan yönteme bağımsız bir değişken olarak belirtmekten kaçınmak amacıyla kullanabilirsiniz. Bu tekniği kullanarak, Yeniden Adlandırma Yeniden Düzenleme değerleri değiştirmediği için ortaya çıkan String sorununu önlersiniz. Bu özellikle aşağıdaki görevler için kullanışlıdır:

  • İzleme ve tanılama yordamlarını kullanma.

  • Verileri bağlarken INotifyPropertyChanged arabirimini uygulama. Bu arabirim, bir nesnenin özelliğinin, denetimin güncelleştirilmiş bilgileri görüntüleyebilmesi için özelliğin değiştirildiğini bağlı bir denetime bildirmesine olanak tanır. CallerMemberName özniteliği olmadan, özellik adını değişmez değer olarak belirtmeniz gerekir.

Aşağıdaki grafik, özniteliğini kullandığınızda CallerMemberName döndürülen üye adlarını gösterir.

Arama, Üye adı sonucu
Yöntem, özellik veya olay Çağrının kaynaklandığı yöntemin, özelliğin veya olayın adı.
Yapıcı ".ctor" dizesi
Statik oluşturucu ".cctor" dizesi
Yıkıcı "Finalize" dizesi
Kullanıcı tanımlı işleçler veya dönüştürmeler Üye için oluşturulan ad( örneğin, "op_Addition").
Öznitelik oluşturucu Özniteliğin uygulandığı üyenin adı. Öznitelik bir üyenin içindeki herhangi bir öğeyse (parametre, dönüş değeri veya genel tür parametresi gibi), bu sonuç bu öğeyle ilişkili üyenin adıdır.
İçeren üye yok (örneğin, derleme düzeyi veya türlere uygulanan öznitelikler) İsteğe bağlı parametrenin varsayılan değeri.

Oluşturucular

Name Description
CallerMemberNameAttribute()

CallerMemberNameAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Name Description
Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğin karma kodunu döndürür.

(Devralındığı yer: Attribute)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.