public static int MainMethod()
        {
            InnerTest1 t1      = new InnerTest1();
            InnerTest2 result1 = t1; //implicit

            return((result1 == null && MemberClass <InnerTest1> .Status == 1) ? 0 : 1);
        }
        public static int MainMethod()
        {
            byte       b      = 1;
            InnerTest1 result = (InnerTest1)b;

            if (result.field == 3 && MemberClass <int> .Status == 1)
            {
                return(0);
            }
            return(1);
        }
        public static int MainMethod()
        {
            InnerTest1 t = new InnerTest1()
            {
                field = 20
            }

            ;
            InnerTest2 result = (InnerTest2)t; //explicit

            return((result.field == 21) ? 0 : 1);
        }
        public static int MainMethod()
        {
            InnerTest1 t1 = new InnerTest1()
            {
                field = 10
            }

            ;
            InnerTest2 result1 = t1;             //implicit
            InnerTest2 result2 = (InnerTest2)t1; //explicit

            return((result1.field == 10 && result2.field == 10) ? 0 : 1);
        }
        public static int MainMethod()
        {
            InnerTest1 t = new InnerTest1()
            {
                field = 20
            }

            ;
            InnerTest2 result1 = (InnerTest2)t; //explicit
            InnerTest2 result2 = t;             //implicit

            return((result1.field == 21 && result2.field == 21) ? 0 : 1);
        }