为什么我需要这个。限定符在母版页中使用扩展方法?

时间:2009-09-12 18:51:19

标签: .net asp.net extension-methods

我在后面的某些母版页代码中有以下代码行,但是如果没有this.它就失败了为什么会这样?

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

这是在主页面Load事件中,扩展方法定义为;

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

1 个答案:

答案 0 :(得分:3)

扩展方法必须有一个实例“挂掉”。

没有对象的方法调用总是引用具有该签名的方法 - 在同一实例中。扩展方法不是实例的一部分。它们是生活在系统中其他地方的静态方法,并且使用一些编译器糖 - 实际上是一种技巧 - 看起来像是为了便于编码而挂在对象上。