using System;
public class Test
{
static void DoIt(Test x) { Console.WriteLine("Test"); }
static void DoIt(object x) { Console.WriteLine("object"); }
static void GenericTest<Smth>(Smth x) { DoIt(x); }
static void DynamicTest(dynamic x) { DoIt(x); }
public static void Main()
{
Console.WriteLine("GenericTest");
GenericTest(new object());
GenericTest(new Test());
GenericTest(88);
Console.WriteLine();
Console.WriteLine("DynamicTest");
DynamicTest(new object());
DynamicTest(new Test());
DynamicTest(88);
Console.WriteLine();
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJc3RhdGljIHZvaWQgRG9JdChUZXN0IHgpICAgeyBDb25zb2xlLldyaXRlTGluZSgiVGVzdCIpOyAgIH0KCXN0YXRpYyB2b2lkIERvSXQob2JqZWN0IHgpIHsgQ29uc29sZS5Xcml0ZUxpbmUoIm9iamVjdCIpOyB9CgkKCXN0YXRpYyB2b2lkIEdlbmVyaWNUZXN0PFNtdGg+KFNtdGggeCkgeyBEb0l0KHgpOyB9CiAJc3RhdGljIHZvaWQgRHluYW1pY1Rlc3QoZHluYW1pYyB4KSAgICB7IERvSXQoeCk7IH0KCglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIkdlbmVyaWNUZXN0Iik7CgkJR2VuZXJpY1Rlc3QobmV3IG9iamVjdCgpKTsKCQlHZW5lcmljVGVzdChuZXcgVGVzdCgpKTsKCQlHZW5lcmljVGVzdCg4OCk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoKTsKCgkJQ29uc29sZS5Xcml0ZUxpbmUoIkR5bmFtaWNUZXN0Iik7CgkJRHluYW1pY1Rlc3QobmV3IG9iamVjdCgpKTsKCQlEeW5hbWljVGVzdChuZXcgVGVzdCgpKTsKCQlEeW5hbWljVGVzdCg4OCk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoKTsKCX0KfQ==