一个引用所有类的变量类型

时间:2015-06-26 07:10:34

标签: c# oop

假设我有两个类,例如:

public class Pineapple
{
public bool Ripe{get;set;}
public string State{get;set;}
}

和:

public class Bean
{
public string Type{get;set;}
public bool Bloats{get;set;}
}

我想在一个方法中返回这两个类的可观察集合。这就是我的意思,而不是:

public ObservableCollection<Pineapple> GetPineapples()
{
//some code that fetches pine apples
}

还有另一种方法:

public ObservableCollection<Bean> GetBeans()
{
//some code that fetches beans
}

我该怎么把@T ie ObservableCollection引用这两个类

2 个答案:

答案 0 :(得分:3)

您可以拥有基类,例如PlantPineappleBean都应该继承(或接口,例如IPlant,两者都应该实现)。

然后你可以做类似的事情:

public class Plant {}

public class Pineapple : Plant ...

public class Bean: Plant ...

public ObservableCollection<Plant> GetPlants()

答案 1 :(得分:0)

您还可以使用名为ViewModel的东西(它通常用于Web,它只是一个代理类,提供有关不同类的一些信息),您可以为每个类添加c'tors;

public class Info
{
    public string Info1 { get; set; }
    public bool Info2 { get; set; }

    public Info(Pineapple p)
    {
        this.Info1 = p.State;
        this.Info2 = p.Ripe;
    }

    public Info(Bean b)
    {
        this.Info1 = b.Type;
        this.Info2 = b.Bloats;
    }
}

P.S。

但是如果你有很多类,你应该考虑使用抽象类/接口。