基本的C#接口问题

Has*_*ion 2 c# inheritance interface

我想实现以下结构:

public interface IMyDbSet
{
    IEnumerable<User> Users { get; }
}

public class ConcreteDbSet : IMyDbSet
{
    DbSet<User> Users { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

虽然DbSet<T>从中继承IEnumerable<T>是不可能的.

Visual Studio错误消息:

....没有实现接口成员'....'.'...'无法实现'....',因为它没有匹配的返回类型'....'.

有没有其他方法来实现这样的结构或者根本不可能这样做?

谢谢.

Flo*_*her 8

最简单的方法是明确地实现接口并Users从explicit Users属性返回隐式属性的值.

public interface IMyDbSet
{
    IEnumerable<User> Users { get; }
}

public class ConcreteDbSet : IMyDbSet
{
    IEnumerable<User> IMyDbSet.Users 
    {
        get { return Users; }
    }

    DbSet<User> Users 
    { 
        get; set; 
    }
}
Run Code Online (Sandbox Code Playgroud)