Perché ho bisogno di questo. qualificatore per utilizzare un metodo di estensione in una pagina master?
-
06-07-2019 - |
Domanda
Ho dietro la seguente riga di codice in alcuni codici della pagina principale, ma non riesce senza il questo.
Perché?
Repeater rep = this.FindControlsByIdRegEx("maintTableRepeater")[0] as Repeater;
Questo si trova nell'evento Load della pagina principale e il metodo di estensione è definito come;
public static List<Control> FindControlsByIdRegEx(this Control control, string idPattern)
Soluzione
I metodi di estensione devono avere un'istanza per " appendere fuori da " ;.
Una chiamata di metodo senza un oggetto si riferisce sempre al metodo con quella firma - nella stessa istanza. I metodi di estensione non fanno parte dell'istanza . Sono metodi statici che vivono altrove nel sistema e usano un po 'di zucchero del compilatore - un trucco, davvero - per sembrare che pendono da un oggetto per facilitare la codifica.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow