다음 본문은 도서 이펙티브 C# (빌 와그너)에서 나오는 주제를 다룹니다.
이벤트로 인자 전달에서 사용
- 일반적으로 속성에 인자로 이름 자체를 전달하는 경우가 많기 때문에, nameof()를 사용하여 전달할 수 있다.
public string Name
{
get => name;
set
{
if(value != name)
{
name = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Name));
}
}
}
오류 처리등에서 사용
- 특정 변수가 null일 때 디버깅 로그를 남기는 등의 작업을 할 때, 변수의 이름을 하드코딩으로 적는 경우 변수 이름이 바뀌는 상황에 대처할 수 없다.
int? myScore = null;
if(myscore == null)
Debug.Log("myScore가 null 값임");
int? myScore = null;
if(myscore == null)
Debug.Log($"{nameof(myScore)}가 null 값임");
결론
- 인자의 이름을 매개변수로 취할 때는 nameof()연산자를 사용하자.
'🌍 C# Study > 이펙티브 C#' 카테고리의 다른 글
[08] 이벤트 호출 시에는 null 조건 연산자를 사용하라 (0) | 2021.04.23 |
---|---|
[07] 델리게이트를 이용하여 콜백을 표현하라 (0) | 2021.04.23 |
[05] 문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라 (0) | 2021.04.22 |
[04] string.Format()을 보간 문자열로 대체하라 (0) | 2021.04.22 |
[03] 캐스트보다는 is, as가 좋다 (0) | 2021.04.22 |