相互にリンクされたいくつかの汎用インターフェイスがあります。
public interface IA
{
int val { get; set; }
}
public interface IB<T> where T:IA
{
T a_val { get; set; }
}
public interface IC<T> where T : IB<IA>
{
T b_val { get; set; }
}
public class a:IA
{
public int val { get; set; }
}
public class b:IB<a>
{
public a a_val { get; set; }
}
public class c:IC<b>
{
public b b_val { get; set; }
}
最後のクラス c については、エラーがあります。
型 'b' は、ジェネリック型またはメソッド 'IC' の型パラメーター 'T' として使用できません。'b' から 'IB' への暗黙的な参照変換はありません。
この場合、ジェネリック インターフェイスを適切に使用するにはどうすればよいですか?