사용자에게 특정 내용을 표현해서 보여주고자 할때 변수의 이름을 그대로 출력해야 하는 경우가 있습니다.
string Name = "guest";
Console.WriteLine($"Hello! Your Name : {Name}");
위 예제에서 Name이 그러한 경우인데 이처럼 단순 문자열로 표현해도 되지만 특별히 nameof를 사용해서 표현할 수도 있습니다.
string Name = "guest";
Console.WriteLine($"Hello! Your {nameof(Name)} : {Name}");
굳이 변수명을 이렇게 할 이유는 혹시라도 변수명이 바뀌었을때 오류를 발생시켜 항상 변수의 이름을 정확히 표현할 수 있도록 하기 위함입니다. 변수명을 단순히 문자열로 표현해 버리면 컴파일과정에서 변수명이 바뀌었는지 확인이 안되므로 변수명과 문자열내용이 일치하지 않는 상황이 생길 수 있기 때문입니다.
출처: http://lab.cliel.com/entry/C-nameof?category=478966 [CLIEL LAB]