01. nameof() 연산자
nameof() 연산자는 컴파일 시점에 변수, 타입 또는 멤버의 이름을 문자열 상수로 생성하는 일을 한다. 참고로 피연산자가 타입이나 네임스페이스일 경우 반환되는 문자열 상수는 정규화되지 않은 값이다. 여기에서 정규화는 C#에서 정한 고유 값을 식별하는 모든 이름을 의미한다.
예제는 다음과 같다.
// MS 공식문서
// https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/operators/nameof
Console.WriteLine(nameof(System.Collections.Generic)); // output: Generic
Console.WriteLine(nameof(List<int>)); // output: List
Console.WriteLine(nameof(List<int>.Count)); // output: Count
Console.WriteLine(nameof(List<int>.Add)); // output: Add
List<int> numbers = new List<int>() { 1, 2, 3 };
Console.WriteLine(nameof(numbers)); // output: numbers
Console.WriteLine(nameof(numbers.Count)); // output: Count
Console.WriteLine(nameof(numbers.Add)); // output: Add
02. nameof() 연산자를 왜 사용하나?
프로그래밍을 하다보면 경로를 지정해서 파일을 생성하거나 문자열을 메서드의 매개변수로 사용할 수 있는데 이럴 때 nameof() 연산자를 사용할 수 있다. 기본적으로 문자열을 직접 입력하게 된다면 오탈자가 나타날 수 있기 때문에 프로젝트의 규모가 방대해질수록 찾기 힘들어질 수 있다. nameof() 연산자를 사용하면 이러한 이슈를 방지할 수 있다.
분명 유익한 것은 맞으나, 아직까지 nameof() 연산자의 활용도가 높지 않아서 잘 모르겠다. 이러한 사실을 기억하고 추후에 사용할 부분이 있다면 적용해보는 것이 좋지 않을까..?
'독서 > Effective C#' 카테고리의 다른 글
[Effective C#] 이벤트 호출 시에는 null 조건 연산자를 사용하라 (0) | 2024.08.03 |
---|---|
[Effective C#] 델리게이트를 이용하여 콜백을 표현하라 (0) | 2024.08.02 |
[Effective C#] 문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라 (0) | 2024.07.31 |
[Effective C#] string.Format()을 보간 문자열로 대체하라 (0) | 2024.07.30 |
[Effective C#] 캐스트보다는 is, as가 좋다 (0) | 2024.07.29 |