C# 一种引用所有类的变量类型
假设我有两门课,比如:C# 一种引用所有类的变量类型,c#,oop,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<P
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
}
publicobservableCollection getPinepples()
{
//一些获取松树苹果的代码
}
还有另一种方法:
public ObservableCollection<Bean> GetBeans()
{
//some code that fetches beans
}
publicobservableCollection GetBeans()
{
//一些获取bean的代码
}
我该如何放置@T ie ObservableCollection,它引用这两个类您可以拥有基类,例如
Plant
,菠萝和Bean都应该从中继承(或者接口,例如IPlant
,两者都应该实现)
然后,您可以执行以下操作:
public class Plant {}
public class Pineapple : Plant ...
public class Bean: Plant ...
public ObservableCollection<Plant> GetPlants()
公共类植物{}
公共类菠萝:植物。。。
公共类豆类:植物。。。
公共可观测采集设备()
您可以拥有基类,例如Plant
,菠萝
和Bean
都应该继承自基类(或者接口,例如IPlant
,两者都应该实现)
然后,您可以执行以下操作:
public class Plant {}
public class Pineapple : Plant ...
public class Bean: Plant ...
public ObservableCollection<Plant> GetPlants()
公共类植物{}
公共类菠萝:植物。。。
公共类豆类:植物。。。
公共可观测采集设备()
您可以拥有基类,例如Plant
,菠萝
和Bean
都应该继承自基类(或者接口,例如IPlant
,两者都应该实现)
然后,您可以执行以下操作:
public class Plant {}
public class Pineapple : Plant ...
public class Bean: Plant ...
public ObservableCollection<Plant> GetPlants()
公共类植物{}
公共类菠萝:植物。。。
公共类豆类:植物。。。
公共可观测采集设备()
您可以拥有基类,例如Plant
,菠萝
和Bean
都应该继承自基类(或者接口,例如IPlant
,两者都应该实现)
然后,您可以执行以下操作:
public class Plant {}
public class Pineapple : Plant ...
public class Bean: Plant ...
public ObservableCollection<Plant> GetPlants()
公共类植物{}
公共类菠萝:植物。。。
公共类豆类:植物。。。
公共可观测采集设备()
您还可以使用名为ViewModel的工具(它通常用于web,只是一个代理类,提供了有关不同类的一些信息),您可以为您拥有的每个类添加c'TOR
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;
}
}
附言
但是,如果你有很多类,你应该考虑使用抽象类/接口。
你也可以使用一种叫做VIEWMIDE的东西(它通常用于Web,它只是一个代理类,它提供了关于不同类的一些信息),你可以为你的每一个类添加CcTor;p>
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;
}
}
附言
但是,如果你有很多类,你应该考虑使用抽象类/接口。
你也可以使用一种叫做VIEWMIDE的东西(它通常用于Web,它只是一个代理类,它提供了关于不同类的一些信息),你可以为你的每一个类添加CcTor;p>
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;
}
}
附言
但是,如果你有很多类,你应该考虑使用抽象类/接口。
你也可以使用一种叫做VIEWMIDE的东西(它通常用于Web,它只是一个代理类,它提供了关于不同类的一些信息),你可以为你的每一个类添加CcTor;p>
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>使用<代码>继承< /代码>如何?你可以创建一个基类,这些类从中获取属性,你可以有一个通用的基类来引用。我想实现一个接口,因为我有很多这样的类,它们具有非常相似的方法签名,例如FetchItems()可以返回菠萝或BeansSee@Andy的答案。这就是我指的。类似于这种模式的东西对您的案例很有帮助。在这里使用
继承如何?你可以创建一个基类,这些类从中获取属性,你可以有一个通用的基类来引用。我想实现一个接口,因为我有很多这样的类,它们具有非常相似的方法签名,例如FetchItems()可以返回菠萝或BeansSee@Andy的答案。这就是我指的。类似于这种模式的东西对您的案例很有帮助。在这里使用继承如何?你可以创建一个基类,这些类从中获取属性,你可以有一个通用的基类来引用。我想实现一个接口,因为我有很多这样的类,它们具有非常相似的方法签名,例如FetchItems()可以返回菠萝或BeansSee@Andy的答案。这就是我指的。类似于这种模式的东西对您的案例很有帮助。在这里使用继承如何?你可以创建一个基类,这些类从中获取属性,你可以有一个通用的基类来引用。我想实现一个接口,因为我有很多这样的类,它们具有非常相似的方法签名,例如FetchItems()可以返回菠萝或BeansSee@Andy的答案。这就是我指的。类似于该模式的内容将对您的案例有所帮助。适用于具有类似属性的类,但属性不相似但方法相似的类有哪些。@您可以将其放入基类中(或放入接口中,具体取决于您决定执行的操作)只有您计划实现的所有类所共有的属性/方法。如果没有这样的公共属性/方法-基类可以为空,在这种情况下,它将仅用作类层次结构的“根”,在集合的返回结果中可以使用的公共类型。结合使用接口和继承有帮助,但我希望只对具有类似属性的类执行ObservableCollection:PWorks,但属性为