C#에 대해서 질문 좀 할께..
interface Foo<T>
{
T get();
void set(T);
}
이런 제네릭 인터페이스가 있다고 치고
이 인터페이스를 구현한 놈이 있는데
class 클래스1 : Foo<Data1>
{ ... }
class 클래스2 : Foo<Data2>
{ ... }
이 데이터 타입이 다른 두 놈들을 인터페이스 배열에 처 넣을 수 있는 방법이 있냐?
Foo<Data1> t1 = new 클래스1<Data1>()
Foo<Data2> t2 = new 클래스1<Data2>()
Foo[] arr = { t1, t2 };
이렇게 쓰고 싶은데 방법이 있음?
foreach( var i in arr)
i .get();
뭐 없으면 어쩔수 없는거지만.
저렇게하면 서로 다른타입이 되는건데.. 그게 되면안되지 않겠음?
generic은 정말 generic한곳에만 써..
애초에 구조를 잘못 잡았다는 명백한 증거 ㅇㅇ
자바에선 되는데 C#에선 안되나? 자바도 인터페이스가 아니라 추상만 저렇게 되던가
그래 자바에서는 저게 돼서 질문했던건데 자바가 동적 바인딩이라 그런거였구만 ! ㄳㄳ