2009-09-18 11 views
5

Qualche idea? L'ho marcato come statico ma non funziona!Non riesco a far funzionare il mio metodo di estensione (C#)

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

Hai l'istruzione 'using ExtensionMethods' dove vuoi usare questo codice? – pgb

+1

Controllare gli avvisi del compilatore per CS1106. –

risposta

19

Manca una statica sulla classe. Il compilatore avrebbe dovuto dirtelo?

public static class ExtensionMethods 
+3

questa è la soluzione, ma il compilatore non lo dirà. per quanto lo riguarda, la sintassi è valida. non ha idea che stai provando a creare un metodo di estensione. –

+3

Può e fa - http://msdn.microsoft.com/en-us/library/bb397656.aspx – ICR

11

credo, ha bisogno di essere definita in una classe statica:

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

È necessario includere anche una using MyNameSpace; nel file di codice che si desidera utilizzare loro, a meno che non si trova nella stessa namespace

+0

Spot on. I metodi di estensione possono essere definiti solo su classi statiche. –

Problemi correlati