views:

46

answers:

1

I have the following line of code in some master page code behind, but it fails without the this. Why is that?

Repeater rep = this.FindControlsByIdRegEx("maintTableRepeater")[0] as Repeater;

This is in the master page Load event, and the extension method is defined as;

        public static List<Control> FindControlsByIdRegEx(this Control control, string idPattern)
+3  A: 

Extension methods must have an instance to "hang off of".

A method call without an object always refers to the method with that signature - in the same instance. Extension methods are not part of the instance. They are static methods that live elsewhere in the system, and use a little bit of compiler sugar - a trick, really - to look like they hang off of an object for ease of coding.

Rex M
Yes, but everywhere else my extensions methods use the implicit 'this' in instance methods.
ProfK