Зачем мне это нужно. квалификатор для использования метода расширения на главной странице? - PullRequest
3 голосов
/ 12 сентября 2009

У меня есть следующая строка кода в некотором коде главной страницы, но она не работает без this. Почему это так?

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

Это событие главной страницы загрузки, а метод расширения определяется как;

        public static List<Control> FindControlsByIdRegEx(this Control control, string idPattern)

1 Ответ

3 голосов
/ 12 сентября 2009

Методы расширения должны иметь экземпляр для «зависания».

Вызов метода без объекта всегда ссылается на метод с этой сигнатурой - в том же экземпляре.Методы расширения не являются частью экземпляра .Это статические методы, которые живут в других частях системы и используют немного сахара компилятора - правда, хитрость - чтобы выглядеть так, будто они свисают с объекта для простоты кодирования.

...