a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
117 lines
1.9 KiB
C#
117 lines
1.9 KiB
C#
using System;
|
|
|
|
public class Blah {
|
|
|
|
enum Bar {
|
|
a = MyEnum.Foo,
|
|
b = A.c,
|
|
c = MyEnum.Bar,
|
|
d = myconstant,
|
|
e = myconstant | 0x1fff
|
|
}
|
|
|
|
public enum MyEnum : byte {
|
|
Foo = 254,
|
|
Bar = (byte) B.y
|
|
}
|
|
|
|
enum A {
|
|
a, b, c
|
|
}
|
|
|
|
enum B {
|
|
x, y, z
|
|
}
|
|
|
|
enum AA : byte { a, b }
|
|
enum BB : ulong { x = ulong.MaxValue - 1, y }
|
|
|
|
const int myconstant = 30;
|
|
|
|
enum Compute : ulong {
|
|
two = AA.b + B.y,
|
|
three = AA.b - B.y,
|
|
four = A.a * BB.x,
|
|
five = AA.b >> B.y,
|
|
}
|
|
|
|
internal enum WindowAttributes : uint {
|
|
kWindowNoAttributes = 0,
|
|
kWindowCloseBoxAttribute = (1u << 0),
|
|
kWindowHorizontalZoomAttribute = (1u << 1),
|
|
kWindowVerticalZoomAttribute = (1u << 2),
|
|
kWindowCollapseBoxAttribute = (1u << 3),
|
|
kWindowNoConstrainAttribute = (1u << 31),
|
|
kWindowStandardFloatingAttributes = (kWindowCloseBoxAttribute | kWindowCollapseBoxAttribute)
|
|
}
|
|
|
|
// The constant assignment follows a different path
|
|
const Bar bar_assignment = 0;
|
|
|
|
public static int Main ()
|
|
{
|
|
byte b = (byte) MyEnum.Foo;
|
|
|
|
Console.WriteLine ("Foo has a value of " + b);
|
|
|
|
if (b != 254)
|
|
return 1;
|
|
|
|
int i = (int) A.a;
|
|
int j = (int) B.x;
|
|
int k = (int) A.c;
|
|
int l = (int) AA.b + 1;
|
|
|
|
if ((int) Compute.two != 2)
|
|
return 10;
|
|
if (i != j)
|
|
return 1;
|
|
|
|
if (k != l)
|
|
return 1;
|
|
|
|
A var = A.b;
|
|
|
|
i = (int) Bar.a;
|
|
|
|
if (i != 254)
|
|
return 1;
|
|
|
|
i = (int) Bar.b;
|
|
|
|
if (i != 2)
|
|
return 1;
|
|
|
|
j = (int) Bar.c;
|
|
|
|
if (j != 1)
|
|
return 1;
|
|
|
|
j = (int) Bar.d;
|
|
|
|
if (j != 30)
|
|
return 1;
|
|
|
|
Enum e = Bar.d;
|
|
if (e.ToString () != "d")
|
|
return 15;
|
|
|
|
//
|
|
// Test "U operator (E x, E x)"
|
|
//
|
|
// Notice that the Microsoft C# compiler wont compile the following
|
|
// code, that is a bug in their compiler, see section 14.7.5 of the
|
|
// spec.
|
|
|
|
if ((A.c - A.a) != 2)
|
|
return 16;
|
|
|
|
if ((A.c - 1) != A.b)
|
|
return 17;
|
|
|
|
Console.WriteLine ("Value: " + e.ToString ());
|
|
Console.WriteLine ("Enum emission test okay");
|
|
return 0;
|
|
}
|
|
}
|