다음을 통해 공유


CallerMemberNameAttribute 클래스

정의

특정 호출자 멤버 이름으로 채워야 하는 태그 매개 변수입니다.

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
상속
CallerMemberNameAttribute
특성

예제

다음 예제에서는 특성을 사용하는 CallerMemberName 방법을 보여줍니다. 메서드에 대한 TraceMessage 각 호출에서 호출자 정보는 선택적 매개 변수의 인수로 대체됩니다.

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

설명

기본값이 CallerMemberName 있는 선택적 매개 변수에 특성을 적용합니다. 선택적 매개 변수에 대한 명시적 기본값을 지정해야 합니다. 선택 사항으로 지정되지 않은 매개 변수에는 이 특성을 적용할 수 없습니다.

이 특성을 사용하여 CallerMemberName 멤버 이름을 호출된 메서드의 인수로 String 지정하지 않도록 할 수 있습니다. 이 기술을 사용하면 리팩터링 이름 바꾸기 가 값을 변경하지 않는 문제를 방지할 수 String 있습니다. 이는 다음 작업에 특히 유용합니다.

  • 추적 및 진단 루틴 사용.

  • 데이터를 바인딩할 때 INotifyPropertyChanged 인터페이스를 구현. 이 인터페이스를 사용하면 개체의 속성이 변경되었음을 바인딩된 컨트롤에 알릴 수 있으므로 컨트롤이 업데이트된 정보를 표시할 수 있습니다. 특성이 CallerMemberName 없으면 속성 이름을 리터럴로 지정해야 합니다.

다음 차트는 특성을 사용할 CallerMemberName 때 반환되는 멤버 이름을 보여줍니다.

호출은 내에서 발생합니다. 멤버 이름 결과
메서드, 속성 또는 이벤트 호출이 시작된 메서드, 속성 또는 이벤트의 이름입니다.
생성자 문자열 ".ctor"
정적 생성자 문자열 ".cctor"
소멸자 "Finalize" 문자열
사용자 정의 연산자 또는 변환 멤버의 생성된 이름(예: "op_Addition")입니다.
특성 생성자 특성이 적용되는 멤버의 이름입니다. 특성이 멤버 내의 요소(예: 매개 변수, 반환 값 또는 제네릭 형식 매개 변수)인 경우 이 결과는 해당 요소와 연결된 멤버의 이름입니다.
포함 멤버 없음(예: 형식에 적용된 어셈블리 수준 또는 특성) 선택적 매개 변수의 기본값입니다.

생성자

Name Description
CallerMemberNameAttribute()

CallerMemberNameAttribute 클래스의 새 인스턴스를 초기화합니다.

속성

Name Description
TypeId

파생 클래스에서 구현되는 경우 이 Attribute대한 고유 식별자를 가져옵니다.

(다음에서 상속됨 Attribute)

메서드

Name Description
Equals(Object)

이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

(다음에서 상속됨 Attribute)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
IsDefaultAttribute()

파생 클래스에서 재정의되는 경우 이 인스턴스의 값이 파생 클래스의 기본값인지 여부를 나타냅니다.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의되는 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

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

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에 의해 노출되는 속성 및 메서드에 대한 액세스를 제공합니다.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보