public static int MainMethod(string[] args)
 {
     dynamic d = new C();
     I i = d;
     bool ret = 1 == i.Foo(2);
     ret &= 2 == i.Bar(null);
     d = new CExp();
     i = d;
     ret &= 3 == i.Foo(2);
     ret &= 4 == i.Bar(null);
     return ret ? 0 : 1;
 }
        public static int MainMethod(string[] args)
        {
            dynamic d   = new C();
            I       i   = d;
            bool    ret = 1 == i.Foo(2);

            ret &= 2 == i.Bar(null);
            d    = new CExp();
            i    = d;
            ret &= 3 == i.Foo(2);
            ret &= 4 == i.Bar(null);
            return(ret ? 0 : 1);
        }