Interface avec la liste de la même interface

J’ai l’interface suivante:

public interface IObject{ double x {get;} double y {get;} List List{get; set;} } 

et cette classe

 public class Holder where T : IObject { private T myItem; public void ChangeItemList(T item){ myItem.List = item.List; } 

Cependant, le compilateur n’aime pas la méthode ChangeItemList et sur cette ligne:

 myItem.List = item.List; 

me donne cette erreur:

 Cannot convert source type 'List' to target type 'List' 

Pourquoi ne puis-je pas le faire et quelle est la bonne solution pour ce scénario? Je vous remercie

Je ne suis pas sûr de ce que vous voulez réaliser, mais les éléments suivants sont compilés et exécutés sans exception:

 class Program { static void Main(ssortingng[] 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; } } 

Essayez de faire cela – a travaillé pour moi. Le problème que j’ai eu que myItem était nul.

 public class Holder where T : IObject { private T myItem = Activator.CreateInstance(); public void ChangeItemList(T item) { myItem.List = item.List; } }