2009-09-18 28 views
5

Jakieś pomysły? Oznaczam to jako statyczne, ale nie działa!Nie mogę uzyskać mojej metody rozszerzenia do pracy (C#)

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

Czy masz instrukcję "using ExtensionMethods', w której chcesz użyć tego kodu? – pgb

+1

Powinieneś sprawdzić ostrzeżenia kompilatora dla CS1106. –

Odpowiedz

19

Brakuje statycznego miejsca na klasie. Kompilator powinien był ci to powiedzieć?

public static class ExtensionMethods 
+3

to jest rozwiązanie, ale kompilator nie powie ci tego. w jego przypadku składnia jest poprawna. nie ma pojęcia, że ​​próbujesz stworzyć metodę rozszerzenia. –

+3

Może i robi - http://msdn.microsoft.com/en-us/library/bb397656.aspx – ICR

11

myślę, że musi być zdefiniowana w statycznym klasy:

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

Musisz również zawierać using MyNameSpace; w pliku kodu chcesz je wykorzystać w, chyba że jest w tym samym przestrzeń nazw

+0

Dodatek. Metody rozszerzeń można definiować tylko w klasach statycznych. –

Powiązane problemy