アドバイスを基にこの記述で行けるか!と思ったのですがreturn hoge;でList<IStore>でないとダメと怒られました 素人のぬか喜びでした public interface IStore { } public class Fuga: IStore { public string val { get; set; } } public class Hoge: IStore { public int val { get; set; } } public interface ITest { List<IStore> Hogege(); } public class A : ITest { public List<IStore> Hogege() { List<Hoge> hoge = new List<Hoge>(); hoge.Add(new Hoge { val = 1 }); return hoge; //エラー } }