using System;
public class Program
{
class A
{
public virtual void Do() { }
}
class B:A {}
public static void Main()
{
var m1 = typeof(A).GetMethod("Do");
var m2 = typeof(B).GetMethod("Do");
Console.WriteLine("Methods are equal?\t\t{0}", m1 == m2);
Console.WriteLine("Method handles are equal?\t{0}", m1.MethodHandle == m2.MethodHandle);
Console.WriteLine("Done.");
Console.ReadKey();
}
}
dXNpbmcgU3lzdGVtOwoJCQkJCQpwdWJsaWMgY2xhc3MgUHJvZ3JhbQp7CiAgICBjbGFzcyBBCiAgICB7CiAgICAgICAgcHVibGljIHZpcnR1YWwgdm9pZCBEbygpIHsgfQogICAgfQoKICAgIGNsYXNzIEI6QSAge30KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgdmFyIG0xID0gdHlwZW9mKEEpLkdldE1ldGhvZCgiRG8iKTsKICAgICAgICB2YXIgbTIgPSB0eXBlb2YoQikuR2V0TWV0aG9kKCJEbyIpOwoKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiTWV0aG9kcyBhcmUgZXF1YWw/XHRcdHswfSIsIG0xID09IG0yKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiTWV0aG9kIGhhbmRsZXMgYXJlIGVxdWFsP1x0ezB9IiwgbTEuTWV0aG9kSGFuZGxlID09IG0yLk1ldGhvZEhhbmRsZSk7CgogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJEb25lLiIpOwogICAgICAgIENvbnNvbGUuUmVhZEtleSgpOwogICAgfQkKfQ==