각 항목의 인터페이스는 IItem
입니다. 이것뿐만 아니라 Item에서 상속 한 IDrawableItem
이라는 인터페이스가 있습니다.캐스팅 및 인터페이스 상속
아래 코드는 드로어 블 아이템 그리기를 시도하고 있지만 컬렉션으로서이 클래스 스토어는 IItem
만 허용 할 수 없습니다. IItem
에서 상속 한 항목을이 클래스에 추가 할 수 있지만 다른 방법을 사용하면 캐스팅을 통해서만 수행 할 수 있습니다.
foreach (var item in Items) {
item.Draw(); // The casting would go here.
}
나는,
as
등 캐스팅 ...하지만이 허용하는 방법을 알고? 가장 좋은 방법입니까?
이러한 시나리오를 처리 할 수있는 다른 방법이 있는지 궁금합니다.
아래 코드는 드로어 블 아이템을 그리려하고 있지만 콜렉션으로서이 클래스 스토어는 IItem만을 허용하지 않습니다. - 왜? 디자인에 대해 조금 알려주세요. 그것을 바꿀 수 있습니까? –
Jason의 코드는 당신을 당신의 딜레마에서 벗어나게 할 것입니다. 문제는 이것이 여러분의 객체에 적합한 디자인인지 아닌지에 관한 것이며, 2 줄의 설명으로 말하기가 정말 어렵습니다. – hackerhasid
대신 IDrawbleItem을 저장하는 컬렉션을 사용 하시겠습니까? –