C#의 유형에서 새 인스턴스 만들기

Muhammad Maisam Abbas 2024년2월16일
C#의 유형에서 새 인스턴스 만들기

이 자습서에서는 C#에서 런타임에 지정된 데이터 형식의 새 인스턴스를 만드는 방법에 대해 설명합니다.

C#의Activator클래스를 사용하여 유형에서 새 인스턴스 만들기

런타임에 데이터 유형의 새 인스턴스를 생성하고 데이터 유형을 모르는 경우Activator클래스와Type클래스를 사용하여이 목표를 달성 할 수 있습니다. Activator클래스는 C#의 유형에서 개체의 인스턴스를 만드는 메서드를 제공합니다. Activator.CreateInstance()메서드는 C#에서 지정된 유형에 가장 적합한 생성자로 지정된 유형의 인스턴스를 생성하는 데 사용됩니다. Type클래스는 C#의 데이터 유형을 나타냅니다. Type클래스를 사용하여이 시나리오에서 알려지지 않은 데이터 유형을 판별 할 수 있습니다. 다음 코드 예제는 C#에서Activator클래스와Type클래스를 사용하여 데이터 유형을 몰라도 런타임에 데이터 유형의 새 인스턴스를 만드는 방법을 보여줍니다.

using System;

namespace new_object_from_type {
  class Program {
    static void Main(string[] args) {
      int i = 123;
      Type t = i.GetType();
      Object n = Activator.CreateInstance(t);
      n = 15;
      Console.WriteLine(n);
    }
  }
}

출력:

15

위 코드에서는 C#에서Activator.CreateInstance()메서드를 사용하여 데이터 유형을 지정하지 않고 런타임에int32유형의 인스턴스를 생성했습니다. 처음에는 C#의i.GetType()메소드를 사용하여i변수의 유형을 결정했습니다. 그런 다음Activator.CreateInstance()메서드를 사용하여 해당 유형의 인스턴스를 만들었습니다. Activator.CreateInstance()메소드는 데이터 유형에 가장 적합한 생성자를 자동으로 찾아서 인스턴스를 생성합니다. 그런 다음 새 인스턴스n을 값15로 초기화하고 인쇄했습니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp Type