using System; enum E : uint { Value = 24 } class A { public static implicit operator sbyte (A mask) { return 1; } public static implicit operator byte (A mask) { return 2; } public static implicit operator short (A mask) { return 3; } public static implicit operator ushort (A mask) { return 4; } public static implicit operator int (A mask) { return 5; } public static implicit operator uint (A mask) { return 6; } public static implicit operator long (A mask) { return 7; } public static implicit operator ulong (A mask) { return 8; } } class A2 { public static implicit operator sbyte (A2 mask) { return 1; } public static implicit operator byte (A2 mask) { return 2; } public static implicit operator short (A2 mask) { return 3; } public static implicit operator uint (A2 mask) { return 6; } public static implicit operator long (A2 mask) { return 7; } public static implicit operator ulong (A2 mask) { return 8; } } class A3 { public static implicit operator sbyte (A3 mask) { return 1; } public static implicit operator uint (A3 mask) { return 6; } public static implicit operator long (A3 mask) { return 7; } public static implicit operator ulong (A3 mask) { return 8; } } class A4 { public static implicit operator uint (A4 mask) { return 6; } public static implicit operator long (A4 mask) { return 7; } public static implicit operator ulong (A4 mask) { return 8; } } class A5 { public static implicit operator uint (A5 mask) { return 6; } public static implicit operator int (A5 mask) { return 8; } } class A6 { public static implicit operator byte (A6 mask) { return 2; } } class MyDecimal { public static implicit operator decimal (MyDecimal d) { return 42; } } public class Constraint { public static int Main () { A a = null; A2 a2 = null; A3 a3 = null; A4 a4 = null; A5 a5 = null; A6 a6 = null; if (-a != -5) return 1; if (-a2 != -3) return 2; if (-a3 != -1) return 3; if (-a4 != -7) return 4; if (-a5 != -8) return 5; if (-a6 != -2) return 6; if (~a != -6) return 10; if (~a2 != -4) return 11; if (~a3 != -2) return 12; if (~a4 != 4294967289) return 13; if (~a5 != -9) return 14; if (~a6 != -3) return 15; MyDecimal d = new MyDecimal (); if (-d != -42) return 20; E e = E.Value; if (~e != (E)4294967271) return 21; uint dp = 0; dp = +dp; Console.WriteLine ("OK"); return 0; } }