1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
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 ()
{ }
}
|