可能重复:
C# -Generics 帮助
让我们从这个接口 IBar 开始,如下所示。
public interface IBar<T> : IQueryable<T>, IEnumerable<T> where T : class
{
}
我有以下 3 个类 Bar1、Bar2 和 Bar3。
public class Bar1
{
}
public class Bar2
{
}
public class Bar3
{
}
然后我有另一个名为 IFoo 的接口,其中包含上述三个类中的每一个的通用 IBar,如下所示。
public interface IFoo
{
IBar<Bar1> Bar1 { get; set; }
IBar<Bar2> Bar2 { get; set; }
IBar<Bar3> Bar3 { get; set; }
}
最后我有三个类 Foo1Sample、Foo2Sample 和 Foo3Sample。每个此类都包含一个 IFace 接口的实例,并且还有一个返回 IQueryable 的 Data 属性,如下所示。
public class Foo1Sample
{
IFoo foo;
public IQueryable<Bar1> Data
{
get { return foo.Bar1; }
}
}
public class Foo2Sample
{
IFoo foo;
public IQueryable<Bar2> Data
{
get { return foo.Bar2; }
}
}
public class Foo3Sample
{
IFoo foo;
public IQueryable<Bar3> Data
{
get { return foo.Bar3; }
}
}
我只是想知道是否可以创建一个可用于 Foo1Sample、Foo2Sample 和 Foo3Sample 的基类,以便 Data 属性可以从该 IFoo 接口返回适当的类型。