2010-04-15 47 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