2 // This test exercises the various ways in which mutator operators can be
3 // used in C# and the various different scenarios that the compiler would
6 // variables, linear arrays, multi-dimensional arrays, jagged arrays,
7 // properties, indexers and overloaded ++ and --
15 public int this [int n
] {
50 static public Z
operator ++ (Z v
)
59 static int p_pre_increment (X x
)
64 static int p_post_increment (X x
)
69 static int i_pre_increment (X x
)
74 static int i_post_increment (X x
)
79 static Z
overload_increment (Z z
)
84 static Z
overload_pre_increment (Z z
)
95 // Tests the ++ and -- operators on integers
97 static int simple (int i
)
112 int [] a
= new int [10];
115 for (i
= 0; i
< 10; i
++)
118 for (i
= 0; i
< 10; i
++)
122 int [,] b
= new int [10,10];
123 for (i
= 0; i
< 10; i
++){
124 for (j
= 0; j
< 10; j
++){
125 b
[i
,j
] = i
* 10 + j
;
133 for (i
= 0; i
< 10; i
++){
134 for (j
= 0; j
< 10; j
++){
135 if (b
[i
,j
] != i
* 10 + (j
+ 1))
143 public static int Main ()
148 if ((c
= simple (10)) != 0)
151 if (i_pre_increment (x
) != 1)
157 if (i_post_increment (x
) != 1)
163 if (p_pre_increment (x
) != 1)
169 if (p_post_increment (x
) != 1)
177 overload_increment (z
);