public static void OverloadTest_RunTest() { dynamic d = new OverloadTest(); Assert.Equal(1, (int)d.Method(0)); //int overload Assert.Equal(2, (int)d.Method(0.0)); //double overload Assert.Equal(3, (int)d.Method2(0)); //int overload try { Assert.Equal(4, (int)d.Method2(0.0)); //double overload } catch (System.Exception e) { // There is a separate test case that fails when this exception is thrown. // Here we make sure that overload resolution doesn't throw. Assert.Equal("System.MethodAccessException", e.GetType().FullName); } }