2009-09-18 18 views
5

¿Alguna idea? ¡Lo marqué como estático pero no funciona!No puedo obtener mi método de extensión para trabajar (C#)

class ExtensionMethods 
{ 
    public static int Add(this int number, int increment) 
    { 
     return number + increment; 
    } 
} 
+0

¿Tiene la instrucción 'using ExtensionMethods' donde desea utilizar este código? – pgb

+1

Debe verificar las advertencias del compilador para CS1106. –

Respuesta

19

Falta un parámetro estático en la clase. El compilador debería haberte dicho esto?

public static class ExtensionMethods 
+3

esta es la solución, pero el compilador no te dirá esto. en lo que a ella respecta, la sintaxis es válida. no tiene idea de que está tratando de hacer un método de extensión. –

+3

Puede y lo hace - http://msdn.microsoft.com/en-us/library/bb397656.aspx – ICR

11

creo, tiene que ser definido en una clase estática:

namespace MyNameSpace 
{ 
    public static class ExtensionMethods 
    { 
     public static int Add(this int number, int increment) 
     { 
      return number + increment; 
     } 
    } 
} 

También debe incluir una using MyNameSpace; en el archivo de código que desea utilizar en ellos, a menos que sea de la misma espacio de nombres

+0

Spot on. Los métodos de extensión solo se pueden definir en clases estáticas. –

Cuestiones relacionadas