2009-03-21 5 views
1

마지막으로 선택한 데이터를 호출하는 메서드로 반환하는 동안 앞뒤로 이동할 수있는 메뉴 시스템을 만들려고합니다.메뉴 스택 만들기

예를 들어 orderFood() 메서드는 주문할 수있는 음식 유형의 메뉴를 표시합니다. 누군가 해산물을 선택하면 해산물() 메서드를 실행하고 어떤 종류의 해산물을 주문할 수 있는지 쿼리 한 다음

사용자가 fishsticks를 선택하면 주문 식품을 호출하는 메서드로 반환됩니다. 마찬가지로,이 메뉴 시스템은 사용자가 이전 메뉴로 돌아갈 수 있도록합니다.

나는 이런 종류의 효과를 얻기 위해 리플렉션과 안전하지 않은 코드 (포인터)를 사용해야 할 것이라고 생각하지만, 이것을 수행하는 더 간단한 방법이 있다는 것이 긍정적이다. 어떤 제안?

감사합니다, 마이클

답변

1

메뉴를 스택으로 생각하는 대신 나무처럼 생각해보십시오.

이렇게하면 스택 접근 방식을 구현해야 할 때 트리를 "위아래로 걷는"것이 매우 쉽습니다.

파일이나 데이터베이스 (특히 XML에서는 매우 쉽습니다)에서 읽기가 쉽고 위아래로 걷기가 너무 힘들지 않아야합니다.

안전하지 않은 코드 또는 리플렉션을 요구하는 내용이 실제로는 없습니다. C#의 표준 모음으로 모두 수행 할 수 있습니다.

0

쉽게 안전하지 않은 코드가 그것을 기반 데이터를함으로써, 당신은 컴파일시에 알고 제공하지 않고 당신이 설명하는 일을 할 수 있습니다. 메뉴를 이런 일을하는 루틴으로 생각하는 대신 메뉴를 이런 일을하는 객체의 클래스로 생각하십시오. 음.

컴파일 타임에 모든 것을 모르는 경우 (파일에서 옵션을 읽어야 할 필요가 있다고하더라도) 내용을 기반으로 런타임에 메뉴를 나타내는 객체의 중첩을 빌드하여 수행 할 수 있습니다 파일의