2009-09-18 60 views
5

任何想法?我將它標記爲靜態,但它不起作用!我無法讓我的擴展方法工作(C#)

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

你有'使用ExtensionMethods'語句你想使用這個代碼? – pgb 2009-09-18 12:29:48

+1

您應該檢查CS1106的編譯器警告。 – 2009-09-18 13:20:54

回答

19

你缺少類的靜態。編譯器應該告訴你這個?

public static class ExtensionMethods 
+3

這是解決方案,但編譯器不會告訴你這一點。就它而言,語法是有效的。它不知道你正在嘗試做一個擴展方法。 – 2009-09-18 12:32:10

+3

它可以做 - http://msdn.microsoft.com/en-us/library/bb397656.aspx – ICR 2009-09-18 12:50:38

11

我認爲,它需要一個靜態類中定義:

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

您還必須包括代碼文件using MyNameSpace;要在使用它們,除非是在同一命名空間

+0

Spot on。擴展方法只能在靜態類上定義。 – 2009-09-18 12:32:35