38 lines
753 B
C#
38 lines
753 B
C#
|
using System;
|
||
|
|
||
|
public class ThisBaseClass<A, B, C>
|
||
|
where A: ThisBaseClass<A, B, C>
|
||
|
where B: ThatBaseClass<B, A, C>, new()
|
||
|
where C: class
|
||
|
{ }
|
||
|
|
||
|
public class ThatBaseClass<B, A, C>
|
||
|
where B: ThatBaseClass<B, A, C>, new()
|
||
|
where A: ThisBaseClass<A, B, C>
|
||
|
where C: class
|
||
|
{ }
|
||
|
|
||
|
public class ThisClass<A, B, C>: ThisBaseClass<A, B, C>
|
||
|
where A: ThisClass<A, B, C>
|
||
|
where B: ThatClass<B, A, C>, new()
|
||
|
where C: class
|
||
|
{ }
|
||
|
|
||
|
public class ThatClass<B, A, C>: ThatBaseClass<B, A, C>
|
||
|
where B: ThatClass<B, A, C>, new()
|
||
|
where A: ThisClass<A, B, C>
|
||
|
where C: class
|
||
|
{ }
|
||
|
|
||
|
public class ThisClass: ThisClass<ThisClass, ThatClass, object>
|
||
|
{ }
|
||
|
|
||
|
public class ThatClass: ThatClass<ThatClass, ThisClass, object>
|
||
|
{ }
|
||
|
|
||
|
public class Test
|
||
|
{
|
||
|
public static void Main ()
|
||
|
{ }
|
||
|
}
|