参数错误 - 无法从接口转换为 class

Argument error - cannot convert from interface to class

我有以下接口供 2 个不同的 类 使用。

    public interface IDiversRepository
        {
            IGroupsRepository GroupsManager { get; set; }
            List<Diver> Divers {get;} 
            void AddDiver(Diver aDiver);
            Diver GetDiver(uint regNumber);
            void LoadDivers(string fileName, string delimiter);
            void SaveDivers(string fileName, string delimiter);
        }
    
    public interface IGroupsRepository
        {
            List<Group> Groups { get; set; }
            void AddGroup(Group aGroup);
            Group GetGroup(uint regNumber);
            void LoadGroups(string fileName, string delimiter);
            void SaveGroups(string fileName, string delimiter);
    
        }

我有下面的 类 来实现这些接口。

  public class DiversManager : IDiversRepository
    {

        public IGroupsRepository GroupsManager { get; set; }
        public List<Diver> Diver { get; }


        public void AddDiver(Diver aDiver)
        {
            //some code
        }
  
        public Diver GetDiver(uint regNumber)
        {

            //some code
        }

        public void LoadDivers(string fileName, string delimiter)
        {
            //some code
        }      

        public void SaveDivers(string fileName, string delimiter)
        {
           //some code
        }

   }

public class GroupsManager : IGroupsRepository
{
        public List<Group> Groups { get; set; }
        public void AddGroup(Group aGroup);
        {
           //some code
        }
        public Group GetGroup(uint regNumber);
        {
           //some code
        }
        public void LoadGroups(string fileName, string delimiter);
        {
           //some code
        }
        public void SaveGroups(string fileName, string delimiter);
        {
           //some code
        }

}

我收到错误“参数 1:无法在我的主程序的这部分代码上从 IGroupsRepository 转换为 GroupsManager。我是否遗漏了导致此错误的接口实现的某些内容?没有更改主程序中的代码,我该如何解决这个错误?谢谢。

    class Program
    {
      static void Main(string[] args)
      {
        IGroupsRepository grpMngr = new GroupsManager();
        IDiversRepository divMngr = new DiversManager(grpMngr); //error points to grpMngr
      }
     }

您在 DiversManager 中似乎没有将 IGroupsRepository 作为参数的构造函数。您应该添加这样的构造函数:

public DiversManager(IGroupsRepository groupsRepository) {
    // some code
}