C#의 정적 타입 정보 연산자

2023. 10. 26. 17:00·C#
반응형

C#에서는 정적 타입 정보 연산자를 사용하여 변수, 메서드, 클래스 등의 타입 정보를 확인할 수 있습니다. 정적 타입 정보 연산자는 다음과 같습니다.

  • nameof
  • typeof
  • type.GetFields

nameof 연산자

nameof 연산자는 변수, 메서드, 클래스 등의 이름을 문자열로 반환합니다. nameof 연산자는 다음과 같은 형식을 사용합니다.

nameof(변수 또는 메서드 또는 클래스)

예를 들어, 다음과 같이 사용할 수 있습니다.

// 변수의 이름을 문자열로 반환합니다.
string variableName = nameof(myVariable);

// 메서드의 이름을 문자열로 반환합니다.
string methodName = nameof(myMethod);

// 클래스의 이름을 문자열로 반환합니다.
string className = nameof(MyClass);

typeof 연산자

typeof 연산자는 변수, 메서드, 클래스 등의 타입 정보를 반환합니다. typeof 연산자는 다음과 같은 형식을 사용합니다.

typeof(변수 또는 메서드 또는 클래스)

예를 들어, 다음과 같이 사용할 수 있습니다.

// 변수의 타입 정보를 반환합니다.
Type variableType = typeof(myVariable);

// 메서드의 타입 정보를 반환합니다.
Type methodType = typeof(myMethod);

// 클래스의 타입 정보를 반환합니다.
Type classType = typeof(MyClass);

 

type.GetFields()

type.GetFields() 메서드는 클래스의 모든 필드 정보를 반환합니다. type.GetFields() 메서드는 다음과 같은 형식을 사용합니다.

C#

type.GetFields();

예를 들어, 다음과 같이 사용할 수 있습니다.

// MyClass 클래스의 모든 필드 정보를 반환합니다.
FieldInfo[] fields = MyClass.GetFields();

// 반환된 필드 정보를 순회합니다.
foreach (FieldInfo field in fields)
{
    // 필드의 이름을 출력합니다.
    Console.WriteLine(field.Name);
}

예시

다음은 정적 타입 정보 연산자를 사용하는 예시입니다.

public class MyClass
{
    public string MyProperty { get; set; }

    public void MyMethod()
    {
        // nameof 연산자를 사용하여 변수의 이름을 문자열로 반환합니다.
        string variableName = nameof(MyProperty);

        // typeof 연산자를 사용하여 변수의 타입 정보를 반환합니다.
        Type variableType = typeof(MyProperty);

        // type.GetFields() 메서드를 사용하여 클래스의 모든 필드 정보를 반환합니다.
        FieldInfo[] fields = MyClass.GetFields();
    }
}

 

이 코드는 다음과 같은 출력을 생성합니다.
MyProperty
System.String
MyProperty

이 예시에서 nameof 연산자는 변수 MyProperty의 이름을 문자열로 반환합니다. typeof 연산자는 변수 MyProperty의 타입 정보를 반환합니다. type.GetFields() 메서드는 클래스 MyClass의 모든 필드 정보를 반환합니다.

 

결론

C#의 정적 타입 정보 연산자는 코드의 가독성과 유지보수를 높이는 데 도움이 됩니다. 정적 타입 정보 연산자를 사용하여 코드에서 타입 정보를 쉽게 확인할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

C# 6.0의 catch/finally 블럭에서 await 사용  (0) 2023.11.08
Microsoft.CodeAnalysis.LanguageServer client: couldn't create connection to server.  (1) 2023.10.27
C# 람다 식 : 캡처  (0) 2023.10.20
C#의 HashSet<T>  (0) 2023.10.19
C#의 char 자료형  (0) 2023.10.18
'C#' 카테고리의 다른 글
  • C# 6.0의 catch/finally 블럭에서 await 사용
  • Microsoft.CodeAnalysis.LanguageServer client: couldn't create connection to server.
  • C# 람다 식 : 캡처
  • C#의 HashSet<T>
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    리스트
    카페24리뷰
    카페24리뷰이관
    스크립트 실행 순서
    cv2
    스마트스토어리뷰
    C#
    unity
    appdevelopment
    Python
    리뷰이관
    유니티
    셀레니움
    상품 리뷰 크롤링
    rtsp
    codingcommunity
    devlife
    리뷰관리
    라떼우유
    스크립트 실행
    programmerlife
    쇼핑몰리뷰
    list
    긴유통기한우유
    programming101
    믈레코비타멸균우유
    codingtips
    ipcamera
    learntocode
    파이썬
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
C#의 정적 타입 정보 연산자
상단으로

티스토리툴바