Simplemente lo marca como un método de extensión, este es el formato que eligieron para definir el método como un método de extensión, a diferencia de un método estático simple (que es como se llama internamente de todos modos). Esto es solo para el compilador (y intellisense), debajo de las cubiertas su código compila lo mismo que si estuviera llamando directamente al método estático.
Esta definición de un método:
public static int ToInt(string number) //non extension
necesarias para ser distinguible de esto:
public static int ToInt(this string number) //extension
De lo contrario, tendríamos IntelliSense contiene todos los métodos estáticos en una clase estática en espacios de nombres incluidos, muy indeseable.
Hubiera preferido personalmente un Atributo. Algo así como [Extiende (typeof (foo)] y luego tenía una variable implícita llamada valor, similar a las propiedades. Hubiera sido más expresivo y no requería una reutilización de una palabra clave existente. Solo mi opinión personal. – John
Scott Hanselman tiene una buena artículo que explica la importancia de la palabra clave "this". http://www.hanselman.com/blog/HowDoExtensionMethodsWorkAndWhyWasANewCLRNotRequired.aspx – Zaffiro