3 public class ThisBaseClass<A, B, C>
4 where A: ThisBaseClass<A, B, C>
5 where B: ThatBaseClass<B, A, C>, new()
9 public class ThatBaseClass<B, A, C>
10 where B: ThatBaseClass<B, A, C>, new()
11 where A: ThisBaseClass<A, B, C>
15 public class ThisClass<A, B, C>: ThisBaseClass<A, B, C>
16 where A: ThisClass<A, B, C>
17 where B: ThatClass<B, A, C>, new()
21 public class ThatClass<B, A, C>: ThatBaseClass<B, A, C>
22 where B: ThatClass<B, A, C>, new()
23 where A: ThisClass<A, B, C>
27 public class ThisClass: ThisClass<ThisClass, ThatClass, object>
30 public class ThatClass: ThatClass<ThatClass, ThisClass, object>