C# 接口不允许成员类满足要求

对不起,如果标题不是很具有描述性。我不知道如何描述这一点。


首先,我创建了一个这样的界面:


public interface IUser {}

然后在几个类中实现它,如下所示:


public class Student : IUser {}


public class Teacher : IUser {}

然后我创建了一个需要第一个接口的接口


public class IUsers

{

    List<IUser> Users {get; set;}

}

然后我创建了一个使用第二个接口的类,但使用第一个接口的一个成员来填充合同。


public class Students : IUsers 

{

    List<Student> Users {get; set;}

}

问题是最后一个我想将列表限制为接口的一种实现,但仍然需要维护接口以实现数据兼容性。当我这样做时,我收到一个错误,说我没有实现接口。我认为既然 Student 实现了接口,它就会履行义务,但似乎没有。这是正确的还是我做错了什么


蓝山帝景
浏览 123回答 2
2回答

紫衣仙女

根据代码,对我来说,示例似乎表明您希望为用户维护单独的实现,然后返回所需的实现。public interface IStudentFactory{&nbsp; &nbsp; &nbsp;IUser Create();}public class StudentFactory{&nbsp; &nbsp; public IUser Create() => new StudentContext();}然后根据您在 IUser 接口中的实现,您可以连接到您的数据存储来管理这些类型的用户。var context = new StudentFactory().Create())var students = context.GetAllStudents();context.Students.Add(new Student() { });&nbsp;我提供的方法是基于您希望能够访问有关不同类型用户的信息、持久化和管理的概念。您的示例显示了您正在添加的原始集合,可能会处理其他功能,但我想您正在努力实现更一致的东西。我可能不符合你的意图,但这就是我的解释。
打开App,查看更多内容
随时随地看视频慕课网APP