我需要一个复杂的返回类型。我有4类返回类型COMPLEXTYPE必须包括公司,Muayene,Radyoloji,Satis因为我必须返回数据切换案例情况我该怎么办?也许我需要通用收藏我怎么能这样做?
public class GenoTipController
{
public COMPLEXTYPE Generate(DataModelType modeltype)
{
_Company company = null;
_Muayene muayene = null;
_Radyoloji radyoloji = null;
_Satis satis = null;
switch (modeltype)
{
case DataModelType.Radyoloji:
radyoloji = new Radyoloji();
return radyoloji;
break;
case DataModelType.Satis:
satis = new Satis();
return satis;
break;
case DataModelType.Muayene:
muayene = new Muayene();
return muayene;
break;
case DataModelType.Company:
company = new Company();
return company;
break;
default:
break;
}
}
}
public class CompanyView
{
public static List GetPersonel()
{
GenoTipController controller = new GenoTipController();
_Company company = controller.Generate(DataModelType.Company);
return company.GetPersonel();
}
}
public enum DataModelType
{
Radyoloji,
Satis,
Muayene,
Company
}
根据枚举类型会产生类。
答案 0 :(得分:1)
看起来你所追求的是一个界面。从Generate方法返回的COMPLEXTYPE必须根据后面的代码公开名为GetPersonel
的方法。
public interface ICompany
{
List GetPersonnel();
}
然后您的Generate方法变为:
public ICompany Generate(DataModelType modeltype)
你的4个班级(Radyoloji,Satis,Muayene,Company)都必须实现这个界面。
答案 1 :(得分:0)
为什么不从类_Company派生类_Muayene,_Radyoloji和_Satis并在_Company类中保留公共数据成员和函数(如GetPersonel)?
答案 2 :(得分:0)
从您的代码中可以看出,当 可以有多种类型时,您仍然只能做一次只有一个,对吗?如果是这样的话那么Nayan的基类或Jamiec的界面是不错的选择。 GenoTipController似乎是一个工厂,这正是它应该做的。这样,您的客户不关心具体类型是什么。