CallerMemberNameAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
메서드에 대한 호출자의 메서드 또는 속성 이름을 가져올 수 있습니다.
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
- 상속
- 특성
예제
다음 예제에서는 특성을 사용하는 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"). |
특성 생성자 | 특성이 적용되는 멤버의 이름입니다. 특성이 멤버 내에 있는 어떤 요소인 경우(예: 매개 변수, 반환 값 또는 제네릭 형식 매개 변수) 이 결과는 그 요소와 관련된 멤버의 이름입니다. |
포함 멤버 없음(예: 형식에 적용된 어셈블리 수준 또는 특성) | 선택적 매개 변수의 기본값입니다. |
생성자
CallerMemberNameAttribute() |
CallerMemberNameAttribute 클래스의 새 인스턴스를 초기화합니다. |
속성
TypeId |
파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다. (다음에서 상속됨 Attribute) |
메서드
Equals(Object) |
이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
GetHashCode() |
이 인스턴스의 해시 코드를 반환합니다. (다음에서 상속됨 Attribute) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
IsDefaultAttribute() |
파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다. (다음에서 상속됨 Attribute) |
Match(Object) |
파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
_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) |
적용 대상
추가 정보
.NET