설계를 잘못했는지 어쩐지 모르겠는데, abstract랑 virtual도 쓰기 힘든 상황이 되어서 어쩔 수 없이 dynamic으로 덕 타이핑으로 뗌빵함.

근데 이게 스노우볼 잘못 굴려서 커져 나중에 버그로 보답할거 같아서 겁나 불안함...

이거 다른 신뢰성 있는걸로 대체 가능함?

코딩을 잘 안 배워서 모르겠음..

코딩 고수들 조언 좀..


public class ParentClass
{
public virtual A GetItem()
=> new A(this);
}

public class ChildA : ParentClass
{
public new B GetItem()
=> new B(this);
}

public class ChildB : ParentClass
{
public new C GetItem()
=> new C(this);
}


// 다른 메소드에서:
newArray = new ParentClass[] { new ParentClass(), new ChildA(), new ChildB() };
array = new ParentClass[newArray.Length];
for(int i = 0; i < newArray.Length; i++)
{
dynamic data = newArray[i];
array[i] = data.GetItem();

/* 원래 했던 방식
ParentClass data = newArray[i];
if(data is ChildA)
array[i] = new B((ChildA)data);
else if(data is ChildB)
array[i] = new C((ChildB)data);
else
array[i] = new A(data);
*/
}