Since Cecil doesn't provide a way to get the list of all the methods that
are overridden implicitly by a given method, I was trying to implement it
manually.

I came across the following prb : How the CLR decides if two method
signatures are the same!
i.e :

• The two signatures
   instance void VMethod(class ClassA)
   instance void VMethod(class [MyAssembly]ClassA)

are considered different within the same type... (ClassA)

• But when it comes to implicit method overriding, a method with the first
signature can override a method with the second one and vice versa !



It's more confusing when 2 methods with the two signatures are overridden by
2 other methods with the two signatures too (ClassB). Which method will
override which one.

When I tried it (MethodSignaturesAndOverriding.il), I noted that it's the
last method emitted in the class B that overrides the two virtual methods of
the class A. I noted also that it's the last method emitted in the class C
that overrides the two virtual methods of the class A.

How does the CLR decides which method overrides which one?

--~--~---------~--~----~------------~-------~--~----~
--
mono-cecil
-~----------~----~----~----~------~----~------~--~---

Reply via email to