我有一个接口和 2 个继承该接口的类,如下所示
public interface ILeader
{
int ID { set; get; }
string Name { set; get; }
}
public class User : ILeader
{
public int ID { set; get; }
public string Name { set; get; }
}
public class Group : ILeader
{
public int ID { set; get; }
public string Name { set; get; }
}
现在我有 2 个方法,它有一个类型的参数ILeader
和 ILeader 的 IList
public void Change(ILeader leader)
{
//do some thing
}
public void ChangeList(IList<ILeader> leaderList)
{
//do some thing
}
现在我可以将一个对象传递Group
给User
Change 方法并且它可以工作。但是当我尝试用List
toChangeList
方法做同样的事情时,它给了我编译时错误。
IList<User> userList=new List<User>();
userList.Add(new User { ID=1, Name ="Happy"});
Change(userList[0]); //this works
ChangeList(userList); //this throws compile error
错误是
cannot convert from List<User> to List<ILeader>
如何使我的ChangeList
方法起作用,以便我可以同时传递 和 的Users
列表Groups
?