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

2024. 8. 1. 09:00·독서/Effective C#


01. nameof() 연산자

nameof() 연산자는 컴파일 시점에 변수, 타입 또는 멤버의 이름을 문자열 상수로 생성하는 일을 한다. 참고로 피연산자가 타입이나 네임스페이스일 경우 반환되는 문자열 상수는 정규화되지 않은 값이다. 여기에서 정규화는 C#에서 정한 고유 값을 식별하는 모든 이름을 의미한다.

https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/language-specification/basic-concepts#783-fully-qualified-names 

 

예제는 다음과 같다.

// 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
'독서/Effective C#' 카테고리의 다른 글
  • [Effective C#] 이벤트 호출 시에는 null 조건 연산자를 사용하라
  • [Effective C#] 델리게이트를 이용하여 콜백을 표현하라
  • [Effective C#] 문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라
  • [Effective C#] string.Format()을 보간 문자열로 대체하라
태역
태역
  • 태역
    RYULAB
    태역
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 언어
        • C
        • C++
        • C#
      • 엔진, 프레임워크
        • Unity
        • Unreal
        • Electron
      • 공부
        • 디자인 패턴
        • 수학
        • CS
        • Git
        • 알고리즘
        • 자료구조
      • 코테
        • 프로그래머스
        • 백준
      • 독서
        • Effective C#
        • CLR via C#
        • 뇌를 자극하는 윈도우즈 시스템 프로그래밍
        • 오브젝트
        • CSAPP
        • OSTEP
      • 프로젝트
        • Unity
      • 개발 일지
        • 퓨처리티
        • 골든타임
      • 활동
        • 게임잼 후기
        • 게임제작동아리 브릿지
        • 크래프톤 정글
        • 기타
      • 기타
  • 블로그 메뉴

    • 링크

    • 공지사항

      • 2024 04 17
    • 인기 글

    • 태그

      인프런 #인프런강의후기 #게임개발 #게임개발강의 #인강후기 #강의후기 #게임개발자 #인프런강의
      오블완
      티스토리챌린지
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    태역
    [Effective C#] nameof() 연산자를 적극 활용하라
    상단으로

    티스토리툴바