CallerMemberNameAttribute 클래스

정의

메서드에 대한 호출자의 메서드 또는 속성 이름을 가져올 수 있습니다.Allows you to obtain the method or property name of the caller to the method.

public ref class CallerMemberNameAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Parameter, Inherited=false)]
public sealed class CallerMemberNameAttribute : Attribute
type CallerMemberNameAttribute = class
    inherit Attribute
Public NotInheritable Class CallerMemberNameAttribute
Inherits Attribute
상속
CallerMemberNameAttribute
특성

예제

다음 예제에서는 CallerMemberName 특성을 사용 하는 방법을 보여 줍니다.The following example shows how to use the CallerMemberName attribute. TraceMessage 메서드에 대 한 각 호출에서 호출자 정보는 선택적 매개 변수에 대 한 인수로 대체 됩니다.On each call to the TraceMessage method, the caller information is substituted as an argument to the optional parameter.

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 특성을 기본값이 있는 선택적 매개 변수에 적용 합니다.You apply the CallerMemberName attribute to an optional parameter that has a default value. 선택적 매개 변수에 대 한 명시적 기본값을 지정 해야 합니다.You must specify an explicit default value for the optional parameter. 이 특성을 선택적으로 지정 되지 않은 매개 변수에 적용할 수 없습니다.You can't apply this attribute to parameters that aren't specified as optional.

자세한 내용은 호출자 정보를 참조 하세요.For more information, see Caller Information.

CallerMemberName 특성을 사용하여 멤버 이름을 호출된 메서드에 대한 String 인수로 지정하는 것을 피할 수 있습니다.You can use the CallerMemberName attribute to avoid specifying the member name as a String argument to the called method. 이 기술을 사용하여 이름 바꾸기 리팩터링String 값을 변경하지 못하는 문제를 피합니다.By using this technique, you avoid the problem that Rename Refactoring doesn't change the String values. 다음 작업에 특히 유용합니다.This is especially useful for the following tasks:

  • 추적 및 진단 루틴 사용.Using tracing and diagnostic routines.

  • 데이터를 바인딩할 때 INotifyPropertyChanged 인터페이스 구현.Implementing the INotifyPropertyChanged interface when binding data. 이 인터페이스에서는 컨트롤에서 업데이트된 정보를 표시할 수 있도록 바운드 컨트롤의 속성이 변경되었음을 알리는 개체의 속성을 사용할 수 있습니다.This interface allows the property of an object to notify a bound control that the property has changed, so that the control can display the updated information. CallerMemberName 특성이 없으면 속성 이름을 리터럴로 지정해야 합니다.Without the CallerMemberName attribute, you must specify the property name as a literal.

아래 차트는 CallerMemberName 특성을 사용할 때 반환되는 멤버 이름을 보여줍니다.The following chart shows the member names that are returned when you use the CallerMemberName attribute.

내에서 호출이 발생Call occurs within 멤버 이름 결과Member name result
메서드, 속성 또는 이벤트Method, property, or event 호출에서 시작한 메서드, 속성 또는 이벤트의 이름입니다.The name of the method, property, or event from which the call originated.
생성자Constructor ".ctor" 문자열The string ".ctor"
정적 생성자Static constructor ".cctor" 문자열The string ".cctor"
소멸자Destructor "Finalize" 문자열The string "Finalize"
사용자 정의 연산자 또는 변환User-defined operators or conversions 멤버에 대해 생성되는 이름입니다(예: "op_Addition").The generated name for the member, for example, "op_Addition".
특성 생성자Attribute constructor 특성이 적용되는 멤버의 이름입니다.The name of the member to which the attribute is applied. 특성이 멤버 내에 있는 어떤 요소인 경우(예: 매개 변수, 반환 값 또는 제네릭 형식 매개 변수) 이 결과는 그 요소와 관련된 멤버의 이름입니다.If the attribute is any element within a member (such as a parameter, a return value, or a generic type parameter), this result is the name of the member that's associated with that element.
포함 하는 멤버 (예를 들어 어셈블리 수준 또는 형식에 적용 되는 특성)No containing member (for example, assembly-level or attributes applied to types) 선택적 매개 변수의 기본값입니다.The default value of the optional parameter.

생성자

CallerMemberNameAttribute()

CallerMemberNameAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the CallerMemberNameAttribute class.

속성

TypeId

파생 클래스에서 구현될 때 이 Attribute의 고유 식별자를 가져옵니다.When implemented in a derived class, gets a unique identifier for this Attribute.

(다음에서 상속됨 Attribute)

메서드

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.Returns a value that indicates whether this instance is equal to a specified object.

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

이 인스턴스의 해시 코드를 반환합니다.Returns the hash code for this instance.

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

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

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

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

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

파생된 클래스에서 재정의할 경우,이 인스턴스가 지정된 된 개체와 같은지 여부를 나타내는 값을 반환 합니다.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

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

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

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

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

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

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.Maps a set of names to a corresponding set of dispatch identifiers.

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

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.Retrieves the type information for an object, which can be used to get the type information for an interface.

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

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

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

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.Provides access to properties and methods exposed by an object.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보