How to call extension method which has the same name as an existing method?
You can't call the extension method as a normal extension method. The instance method overrides the extension method with the same signature
EDIT:
You can call it as a static method
ExtensionTest.MethodA(a);
You can't call it as an extension method. It's basically useless at this point, in terms of being an extension method. (Personally I'd like this to be a warning, but never mind.)
The compiler tries all possible instance methods before it attempts to resolve extension methods. From section 7.6.5.2 of the C# 4 spec:
In a method invocation of one of the forms [...] if the normal processing f the invocation finds no applicable methods, an attempt is made to process the construct as an extension method invociation.
and later:
The preceding rules mean that instance methods take precedence over extension methods
You can call it like a regular static method though:
// Fixed typo in name
ExtensionTest.MethodA(a);