[06] nameof() 연산자를 적극 활용하라

다음 본문은 도서 이펙티브 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()연산자를 사용하자.

 

 

댓글

Designed by JB FACTORY