문제

몇 가지 물체의 구성으로 놀고 있습니다.

두 개의 클래스 (참고 및 작업)가 있습니다.작업 클래스는 노트 클래스에서 태스크가 확장 된 메모입니다.

각 음료는 기존 노트 나 태스크에 메모 또는 작업으로 추가 될 수있는 속성 Property Child as list (of note)가 있습니다 (따라서이 '자식'노트는 작업 또는 음표 일 수 있음)

IE.

dim x as new note()

x.Child.item(0).Child.item(0).Child.item(0).description.ToString()
.

최종 자식 메모 개체는 실제로 작업이며,이 집계를 어떻게 만들 수 있습니까?나는 노트 나 작업인지 걱정하지 않지만 기본 또는 확장 클래스의 기능을 해제하고 싶습니다.

나의 즉각적인 생각은 각 객체가 작업 목록과 노트 목록을 가져야하지만 더 우아한 솔루션이있을 수있는 것처럼 느껴집니다.

아무도 이것에 대한 어떤 생각을 가지고 있습니까?

도움이 되었습니까?

해결책

메모 컬렉션은 이미 원하는 것을 이미 제공해야합니다.

노트와 작업을 구별 해야하는 경우 인스턴스가 'typeof'태스크인지 묻고 파생 된 속성과 메소드에서 얻으려면 적절하게 던지십시오.

필요한 메소드 및 속성이 기본 클래스의 일부인 경우 캐스팅 할 필요가 없으면 다형성에 의존하여 유형 적절한 방법 / 속성을 호출 할 수 있습니다.

다른 팁

내가 올바르게 이해하는 경우, 우리가 가상 메소드 / 속성을 호출하는 것과 함께 클래스의 동작을 구현해야합니다. 필수적으로 적절한 기능이 올바른 클래스에서 호출되도록 늦은 바인드 된 호출을 사용합니다.부모 또는 파생 클래스.

VB.NET equivilent가 "무시 무시할 수 있음"과 "재정의"라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top