우리는 기본 클래스가 있습니다. 필터. DistrFilter 및 ReportFilter는 Filter에서 상속받습니다.파생 클래스 함수를 실행하는 방법은 무엇입니까?
다른 클래스 인 FilterService.cs에는 이러한 세 가지 클래스 유형을 허용하는 두 가지 함수가 있습니다. FilterService는 Filter 객체에서 작동하지만 아무 것도 상속하지 않습니다.
public class FilterService
{
public string GetDesc(List<T> filters) where T : Filter
{
if(filters.Count == 0) return String.Empty;
StringBuilder s = new StringBuilder("<ul>");
foreach (T f in filters)
s.AppendFormat("<li>{1}</li>", GetFilterText(f));
s.Append("</ul>");
return s.ToString();
}
public string GetFilterText(Filter f)
{
return "filter";
}
public string GetFilterText(DistrFilter f)
{
return "distr filter";
}
public string GetFilterText(ReportFilter f)
{
return "report filter";
}
}
public static void main(string[] args)
{
List<DistrFilter> distrFilters = new List<DistrFilters>();
distrFilters.Add(new DistrFilter());
distrFilters.Add(new DistrFilter());
distrFilters.Add(new DistrFilter());
FilterService fs = new FilterService();
Console.WriteLine(fs.GetDescription(distrFilters));
}
는 그런 다음 인쇄 :
가 어떻게 대신이를 인쇄하려면 어떻게해야합니까 필터
- 필터?
- DISTR 필터
- DISTR 필터 ...