부모로 불리는 경우 자식 클래스의 방법을 수행하고, 클래스 클래스 B. 클래스 B는 클래스 A의 하위되도록 :내가 클래스 클래스 A가
public class Class A
{
public DateTime FileStart
{
get
{
return Header.StartTime;
}
set{ }
}
...
...
}
및
public class B : A
{
FileInfo zippedA;
public A myA = null;
internal B(FileInfo mFileInfo)
{
...
//collects the same data as A from the fileinfo such as start time...
...
}
public A getAData()
{
UnZipFile(zippedA);
return myA;
}
...
}
:
그래서 나는 B
의 개체가 목록 Xlist 저장 모든으로와 B에, 예를 들어 A
라고한다하지만 코드의 여러 장소에서 액세스 될 때마다 getAData()
를 호출하는 방법을 찾고 있어요
SortedList Xlist = new SortedList();
public void GetFrames(DateTime desiredStartTime, DateTime desiredEndTime)
{
for(int fileIdx = Xlist.Values.Count-1; fileIdx >= 0; --fileIdx)
{
//my hope is that there is a way to set up B in it's class to say
// "if I get called as an A, I'll perform getAData() and return myA instead.
A rec = (A)Xlist.GetByIndex(fileIdx);
...
...
}
}
위의 인스턴스에서 나는 객체가 Xlist에서 꺼내 졌을 때 A와 같이 계급을 얻고 싶을 때마다 자동으로 getAData()
함수를 호출하고 결과 대신 A를 반환합니다. 이것이 가능한가??
너무 많은 정보로부터 말하기는 너무 어렵지만, 상속은 나빠질 것 같습니다. @ evanmcdonnal의 대답은 현재 감옥에서 빠져 나올 것입니다. 하지만 나는 B가 A (집계) 또는 여하튼 위임을 위임하는 것보다 A가 있음을보고있을 것입니다. 현재 도로를 내려 가면 갈수록 디자인이 악화됩니다. A는 자손에서 오버라이드 할 수도 있고하지 않을 수도있는 가상 메소드를 수행하지 않는 대중을 종결시킬 것입니다. –