C# 如何使用complextype类或多类型类?它是泛型集合吗?

C# 如何使用complextype类或多类型类?它是泛型集合吗?,c#,.net,visual-studio,oop,architecture,C#,.net,Visual Studio,Oop,Architecture,我需要一个复杂的返回类型。我有4个类返回类型COMPLEXTYPE必须包括Company、Muayene、Radyoloji、Satis,因为我必须返回数据交换情况我该怎么办?也许我需要一般的收藏我怎么能做到 public class GenoTipController { public COMPLEXTYPE Generate(DataModelType modeltype) { _Company company = null

我需要一个复杂的返回类型。我有4个类返回类型COMPLEXTYPE必须包括Company、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
    }

根据枚举类型将生成类。

为什么不从类公司派生类_Muayene、_Radyoloji和_Satis,并将公共数据成员和函数(如GetPersonel)保留在_Company类中?

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

public interface ICompany
{
   List GetPersonnel();
}
然后,生成方法变为:

public ICompany Generate(DataModelType modeltype)

您的4个类(Radyoloji、Satis、Muayene、Company)中的每一个都必须实现这个接口。

从您的代码来看,虽然可以有多种类型,但一次只能有一种,对吗?如果是这样的话,那么Nayan的基类或Jamiec的接口都是不错的选择。GenoTipController似乎是一个工厂,这正是它应该做的。这样,您的客户就不在乎具体的类型了。

但您在最后只返回一种类型,而不是全部!我想返回一个OBSELECT(来自Radyoloji类或whicy modaltype send complexType)我的类包含所有类型我觉得,很抱歉,您没有给出太多关于设计的信息。我的解决方案,甚至Jamiec的解决方案都可以。正如杰米克所说,我们无法理解你的英语很抱歉。请明确说明您需要什么。我重新安排了我的问题,请看下面:我想返回一个OBSELECT(来自Radyoloji类或whicy modaltype send complexType)我的类包括所有types@programmerist:你的补充观点,而上述评论毫无意义。请重新措辞。我想他不知道工厂的情况。算了吧,他不知道什么是模式。我错了吗=他在你说的“返回”后面加上“中断”语句;我不知道工厂模式?根据枚举类型将生成类。