반응형
callermember attribute를 사용하면 멤버이름을 string형식인자로 넘기지 않아도 된다.
즉 생략이 가능하다는 이야기다.
명시적으로 멤버 이름을 인자로 넘기지 않기 때문에 멤버 변수 이름이 변경되는 Rename Refactoring 의 경우 그 진가를 발휘한다.
[CallerMemberName] 속성은 INotifyPropertyChanged 인터페이스를 사용하다가
알게 되었는데 MSDN 에서는 메소드를 호출한 부분을 추적하거나 진단할 경우에도 사용한다고 한다.
일단 INotifyPropertyChanged에서는 주로 setter에 사용되는 메소드의 선언부분에
{CallerMemberName] 속성이 사용된다.
아래 링크에서는 INotifyPropertyChanged에서 사용되는 예제와
메소드가 호출된 멤버이름과 파일경로 및 코드라인넘버까지 로그로 남기는 예제가 있다.
'C#' 카테고리의 다른 글
error CS0053: 일관성 없는 액세스 가능성: ~ 속성 형식이 ~ 속성보다 액세스 하기 어렵습니다. (0) | 2018.05.09 |
---|