Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / tests / bug-325283.2.cs
1 using System;
2
3 public interface IFoo
4 {
5         void Tst();
6 }
7
8 public class Foo : IFoo
9 {
10         public void Tst ()
11         {
12         }
13 }
14
15 public abstract class BusinessBase<TYPE> where TYPE : BusinessBase<TYPE>, new ()
16 {
17         public static void Load<KEY> (KEY id)
18         {
19                 TYPE instance = new TYPE ();
20                 instance = instance.DataSelect<KEY> (id);
21         }
22
23         protected abstract TYPE DataSelect<KEY> (KEY id);
24 }
25
26 public class Page : BusinessBase<Page>
27 {
28         protected override Page DataSelect<Guid> (Guid k)
29         {
30                 return new Page ();
31         }
32
33         public static void Test<T> (T t) where T : IFoo
34         {
35                 t.Tst();
36         }
37 }
38
39 class D
40 {
41         static void Main ()
42         {
43                 Page.Load<Guid> (new Guid ());
44                 Page.Test<Foo> (new Foo ());
45
46         }
47 }
48