[Effective C#] nameof() 연산자를 적극 활용하라

WH_NAM·2024년 2월 12일

Effective C#

목록 보기
6/23
post-thumbnail

Effective C# Itme6

nameof()연산자
임의의 기호(형식, 멤버, 변수 등)의 이름에 해당하는 문자열을 반환한다.

public string Name
{
	get
    {
    	return name;
    }
    set
    {
    	if (value != name)
        {
        	name = value;
            PropertyChanged?.Invoke(this,
            	new PropertyChangedEventArgs(nameof(Name));
        }
    }
}

private string name;

nameof() 연산자를 사용했기 때문에 속성의 이름을 변경할 경우 이벤트의 인자로 전달해야 하는 문자열도 쉽게 변경할 수 있다.

디버깅 및 유지보수의 용이성
디버깅 메시지가 변수 이름을 출력하므로 디버깅 및 유지보수에 용이하다.

public class Perosn
{
	public string FirstName { get; set; }
    public string LastName { get; set; }
}

class Program
{
	static void Main()
    {
    	string propertyName = nameof(Person.FirstName);
        Console.WriteLine(propertyName);
    }
}
FirstName

nameof()를 사용시 rename작업시 실수를 줄일 수 있다.

public static void ExceptionMessage(object thisCantBeNull)
{
	if (thisCantBeNull == null)
    	throw new ArgumentNullException(nameof(thisCantBeNull),
        	"We told you this cant be null");
}

nameof를 사용하면 변수의 이름을 변경할 때마다 해당 이름을 일일이 찾아 수정할 필요가 없다.
nameof()는 변수의 이름을 참조하므로 이름이 변경되면 자동으로 업데이트되어 유지보수성을 향상시킨다.

profile
안녕하세요

0개의 댓글