They can be declared either static or instance members.
Extension methods can be used to override existing instance methods
Extension methods with the same signature for the same class may be declared in multiple namespace without causing compilation errors.
They must be declared in the same assembley(but may be in different source files)
Extension methods are defined as static methods but are called by using instance method syntax. Their first parameter specifies which type the method operates on, and the parameter is preceded by the this modifier. Extension methods are only in scope when you explicitly import the namespace into your source code with a using directive. Useful resources, Extension Methods