与同一接口列表的接口
我有以下界面:
public interface IObject{ double x {get;} double y {get;} List List{get; set;} }
和这堂课
public class Holder where T : IObject { private T myItem; public void ChangeItemList(T item){ myItem.List = item.List; }
但是编译器不喜欢ChangeItemList方法并且在这一行:
myItem.List = item.List;
给我这个错误:
Cannot convert source type 'List' to target type 'List'
为什么我不能这样做,这个场景有什么好的解决方案? 谢谢
我不确定你想要实现什么,但以下编译和运行没有例外:
class Program { static void Main(string[] args) { var holder = new Holder(); holder.MyItem = new Object { List = new List () }; holder.ChangeItemList(new Object { List = new List () }); } } public class Object : IObject { public List List { get; set; } } public interface IObject { List List { get; set; } } public class Holder where T : IObject { public T MyItem { get; set; } public void ChangeItemList(T item) { MyItem.List = item.List; } }
尝试这样做 – 为我工作。 我的问题是myItem为null。
public class Holder where T : IObject { private T myItem = Activator.CreateInstance (); public void ChangeItemList(T item) { myItem.List = item.List; } }