2009-09-18 76 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