我在后面的某些母版页代码中有以下代码行,但是如果没有this.
它就失败了为什么会这样?
Repeater rep = this.FindControlsByIdRegEx("maintTableRepeater")[0] as Repeater;
这是在主页面Load事件中,扩展方法定义为;
public static List<Control> FindControlsByIdRegEx(this Control control, string idPattern)
答案 0 :(得分:3)
扩展方法必须有一个实例“挂掉”。
没有对象的方法调用总是引用具有该签名的方法 - 在同一实例中。扩展方法不是实例的一部分。它们是生活在系统中其他地方的静态方法,并且使用一些编译器糖 - 实际上是一种技巧 - 看起来像是为了便于编码而挂在对象上。