본문 바로가기

Languague/C#

[C#] 다른 타입 객체 동적 초기화 하기

 

C#에서는 다양한 타입의 객체를 동적으로 초기화하고 다룰 수 있다. 다양한 타입의 데이터를 처리해야 하는 상황이 많아서 한번 정리해 보기로 했다.

 

1. 추상 클래스나 인터페이스 정의

먼저, 다양한 타입의 객체를 다루기 위해 공통된 속성과 메서드를 가진 추상 클래스나 인터페이스를 정의 한다

public abstract class SelectedStore
{
    public string storeCode{ get; set; }
    public string storeName { get; set; }
    public string state { get; set; }
}

 

2. 구체적인 클래스 정의

이후, 추상 클래스나 인터페이스를 상속하는 구체적인 클래스를 정의한다.

public class CategorySelectedStore : SelectedStore
{
    // CategorySelectedStore에 필요한 추가 속성
}

public class IdleSelectedStore : SelectedStore
{
    // IdleSelectedStore에 필요한 추가 속성
}

 

3. 동적 초기화

public List<SelectedStore> InitializeSelectedStores(string type)
{
    List<SelectedStore> selectedStores = null;

    if (type == "Category")
    {
        selectedStores = GetCategoryStores().Select(store => new CategorySelectedStore
        {
            storeCode= store.storeCode,
            storeName = store.storeName,
            state = store.state,
            // CategorySelectedStore에 필요한 속성 초기화
        }).ToList();
    }
    else if (type == "Idle")
    {
        selectedStores = GetIdleStores().Select(store => new IdleSelectedStore
        {
            storeCode= store.storeCode,
            storeName = store.storeName,
            state = store.state,
            // IdleSelectedStore에 필요한 속성 초기화
        }).ToList();
    }

    return selectedStores;
}

 

이렇게 하면 selectedStores 리스트에는 다른 타입의 객체들이 동적으로 초기화 되어 지정해서 새로운 유형의 객체를 추가하려면 인터페이스만 구현하면 되서 확장하기 용이해 진다.

300x250