ジェネリックの問題に直面しています:
public interface IEntity {}
public class User : IEntity {}
public class Experiments {
private IList<IEntity> list;
private IList<Action<IEntity>> actions;
public Experiments(){
list = new List<IEntity>();
actions = new List<Action<IEntity>>();
}
public void Add<T>(T entity) where T : IEntity {
list.Add(entity); // -> NO PROBLEM HERE
}
public void AddAction<T>(Action<T> handle) where T : IEntity {
actions.Add(handle); // -> HERE I GET AN ERROR
}
メソッドのシグネチャで T が IEntity であることを指定すると、「'System.Action<T>' から 'System.Action<IEntityCheck>... に変換できません」というメッセージが表示されるのはなぜですか?