参数错误 - 无法从接口转换为 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
}
我有以下接口供 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
}