2010-04-15 46 views
0

我需要一个复杂的返回类型。我有4类返回类型COMPLEXTYPE必须包括公司,Muayene,Radyoloji,Satis,因为我必须返回数据切换案例情况我该怎么办?也许我需要通用集合我该怎么做?如何使用complextype类或多类型类是它的泛型集合?

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

但是,你最终只返回一种类型,不是全部! – Nayan 2010-04-15 10:24:11

回答

0

为什么不从类_Company派生类_Muayene,_Radyoloji和_Satis,并在_Company类中保存常用数据成员和函数(如GetPersonel)?

+0

我想要返回一个Oblect(来自Radyoloji类或者whicy modaltype send complexType)我的课程包括所有类型 – programmerist 2010-04-15 11:19:00

+0

我觉得,很抱歉地说,你对设计没有太多的了解。我的解决方案,甚至Jamiec的解决方案都可以。正如Jamiec所说,我们无法理解你的英语。 :) 对于那个很抱歉。请清楚说明你需要什么。 – Nayan 2010-04-15 15:13:56

1

看起来你正在接触的是接口。根据后面的代码,从您的Generate方法返回的COMPLEXTYPE必须全部公开一个名为GetPersonel的方法。

public interface ICompany 
{ 
    List GetPersonnel(); 
} 

那么你的生成方法变为:

public ICompany Generate(DataModelType modeltype) 

的4类(Radyoloji,赛帝,Muayene,公司),每个必须实现此接口。

+0

我重新安排我的问题如下:我想返回一个Oblect(来自Radyoloji类或者whicy modaltype send complexType)我的课程包括所有类型 – programmerist 2010-04-15 11:19:44

+0

@programmerist:您的额外要点和上述评论没有任何意义。请重新说明。 – Jamiec 2010-04-15 11:39:18

0

从你的代码似乎当你可以有多种类型,你仍然只有有一次一个,对不对?如果是这种情况,那么Nayan的基础级或Jamiec的接口是很好的选择。 GenoTipController似乎是一个工厂,这正是它应该做的。这样,你的客户不关心具体的类型是什么。

+0

我认为他不了解工厂。忘记了,他不知道什么样的模式。我错了吗? = D他在'return'后面加上'break'语句= D – Nayan 2010-04-15 15:15:30

+0

Nayan you say;我不知道工厂模式? – programmerist 2010-04-16 06:40:16

+0

根据枚举类型将产生类。 – programmerist 2010-04-16 06:44:18