Perché ho bisogno di questo. qualificatore per utilizzare un metodo di estensione in una pagina master?

StackOverflow https://stackoverflow.com/questions/1415828

  •  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)
È stato utile?

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
scroll top