按数据类型调用扩展方法

时间:2012-12-05 11:21:14

标签: c#-4.0

我想像这样调用extension方法

int.AnExtensionMethod()

这是可能的还是我必须要调用一个实例?

3 个答案:

答案 0 :(得分:0)

你可以这样做

 public static class intext {
        public static int doubleMe(this int x) {
            return 2 * x;
        }
    }

像这样称呼它

  Console.WriteLine(5.doubleMe());

但我不认为int.doubleMe()是不可能的,你可以阅读更多内容:Why No Extension Properties?

只是为了更清楚

Console.WriteLine(5.doubleMe());

相当于

Console.WriteLine(intext.doubleMe(5));

扩展方法用于扩展现有类型,而不是在其中添加方法。

答案 1 :(得分:0)

据我所知,它需要是一个类的实例。我不记得向类本身添加扩展方法。 此外,为什么要在int(或其他)类中添加扩展方法?

答案 2 :(得分:0)

扩展方法使您可以向现有类型“添加”方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型。所以,你不能做你上面提出的建议,尝试没有任何意义。扩展方法是METHODs。方法对类或对象的实例起作用......

请参阅this basic intro on MSDNthis answer to a very simalar question

我希望这会有所帮助。