2009-09-12 34 views
3

我在後面的一些主頁面代碼中有以下代碼行,但沒有this.就失敗了爲什麼?爲什麼我需要這個。限定符在母版頁中使用擴展方法?

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

這是在主頁面Load事件中,擴展方法被定義爲;

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

「我在後面的一些母版頁代碼中有以下一行代碼」:哪些代碼? – Juri 2009-09-12 18:59:21

+0

哎呀,現在把它放在那裏。 – ProfK 2009-09-12 19:12:08

回答

3

擴展方法必須有一個「掛掉」的實例。

沒有對象的方法調用始終引用具有該簽名的方法 - 在同一實例中。擴展方法不是實例的一部分。它們是位於系統其他地方的靜態方法,並且使用一點編譯器糖(真是一招),看起來好像掛在一個對象上以便於編碼。

+0

是的,但在其他地方,我的擴展方法在實例方法中使用隱式「this」。 – ProfK 2009-09-12 19:11:03

相關問題