ケースは非常にシンプルです。私はこのインターフェースを持っています
public interface IHasNext
{
IHasNext NextItem { get; set; }
}
そして、私はそれを次のように実装しようとします:
public class Item : IHasNext
{
public int Id { get; set; }
Item NextItem { get; set; }
}
ただし、実装のプロパティ NextItem が同じ型ではないため (型がインターフェイスを実装している場合でも)、これは機能しません。したがって、型パラメーターとして実装するインターフェイスの型をかなり自由に交換できる場合(少なくともIEnumerableおよびIQueryableで)、これが機能しない理由を誰かが親切に説明してくれます。