안녕하십니까? 동상이몽입니다.
아래의 상황이 있습니다. 이 상황에서 프로그램 동작 중에 A라는 변수의 타입을 바꾸고 싶은데 어떻게 하면 될까요? 방법이 있을까요?
언어는 C#입니다.
클래스 1
{
int member;
void print ( PrintOut("integer type : " + member);
}
클래스 2
{
string member;
void print ( PrintOut("string type : " + member);
}
함수 F (인수 I)
{
변수 A;
IF 인수 I가 Int type이면
변수 A의 타입을 클래스 1로 변경
ELSE
변수 A의 타입을 클래스 2로 변경
A.print();
}
위의 상황에서 클래스 1과 클래스 2의 내부를 변경하는 것은 불가능하다는 전제가 있습니다. 바꿀 수 있는건 함수 F밖에 없는 상황입니다.
혹시 경험있으시면 좋은 의견 부탁드립니다.
덧 : 예가 좀 저질 스럽네요. 클래스 하나로 만들 수 있는걸 두개로 나눴네요. 실제 상황은 저것보다는 훨씬 복잡한 상황입니다. (물론 그것도 애초에 설계가 잘됐다면 하나로 가능하지 않았을까 싶습니다만..)