1

我想调用这样的extension方法

int.AnExtensionMethod()

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

4

3 回答 3

0

扩展方法使您能够将方法“添加”到现有类型,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。所以,你不能做你上面建议的事情,尝试这样做是没有意义的。扩展方法是 METHOD。方法作用于类或对象的实例...

请参阅MSDN 上的这个基本介绍一个非常相似的问题的答案

我希望这有帮助。

于 2012-12-05T11:29:31.730 回答
0

你可以这样做

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

像这样称呼它

  Console.WriteLine(5.doubleMe());

但我认为这int.doubleMe()是不可能的,您可以阅读更多信息:为什么没有扩展属性?

只是为了更清楚

Console.WriteLine(5.doubleMe());

相当于

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

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

于 2012-12-05T11:22:56.173 回答
0

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

于 2012-12-05T11:24:19.233 回答