Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / tests / test-398.cs
1 //
2 // Test for access modifiers
3 //
4
5 using System;
6
7  public class Tester {
8
9          public static void Main ()
10          {
11                  A a = new A (8);
12                  B b = new B (9);
13
14                  b.SetCount (10);
15                  Console.WriteLine ("b.Count should be 9: {0}", b.Count);
16                  Console.WriteLine ("b [{0}] should return {0}: {1}", 10, b [10]);
17
18                  Console.WriteLine ("a.Message : {0}", a.Message);
19                  b.Message = "";
20                  Console.WriteLine ("b.Messasge : {0}", b.Message);
21          }
22
23  }
24
25  public class A {
26
27          protected int count;
28
29          public A (int count)
30          {
31                  this.count = count;
32          }
33
34          public virtual int Count {
35                  get {
36                          return count;
37                  }
38                  protected set {
39                          count = value;
40                  }
41          }
42
43          public virtual int this [int index] {
44                  get {
45                          return index;
46                  }
47          }
48
49          public virtual string Message {
50                  get {
51                          return "Hello Mono";
52                  }
53          }
54
55  }
56
57  public class B : A {
58
59          public B (int count) : base (count)
60          {
61          }
62
63          public override int Count {
64                  protected set {
65                  }
66          }
67
68          public void SetCount (int value)
69          {
70                  Count = value;
71          }
72
73          public override int this [int index] {
74                  get {
75                          return base [index];
76                  }
77          }
78
79          public new string Message {
80                  get {
81                          return "Hello Mono (2)";
82                  }
83                  internal set {
84                  }
85          }
86
87  }
88