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

标签 .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)

最佳答案

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

不带对象的方法调用始终引用具有该签名的方法 - 在同一实例中。扩展方法不是实例的一部分。它们是存在于系统其他地方的静态方法,并使用一点编译器糖(实际上是一个技巧),看起来像是卡在对象上以便于编码。

关于.net - 为什么我需要这个。在母版页中使用扩展方法的限定符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415828/

相关文章:

c# - 将标签文本显示为警告消息并在几秒钟后隐藏?

c# - 哈希速度 - 神秘的结果(哈希两次比哈希一次慢得多)

c# - StateHasChanged/this.StateHasChanged 似乎对 Blazor 组件没有影响

.net - 维护不同版本的最佳源代码控制系统

c# - 通过避免像点击事件这样的回发,使用 javascript 显示消息框。确定,取消按钮应该只关闭消息框

c# - 如果我想将类型约束 (T=int) 方法添加到泛型 (T) 类中,是否必须创建扩展方法?

asp.net - sql server 2008 用户登录失败 'NT AUTHORITY\NETWORK SERVICE'

c# - 如何在其他页面的代码后面访问 global.asax 的属性

c# - 更快的方法来做一个 List<T>.Contains()

kotlin - Kotlin-可变子类的扩展属性 setter