我想像这样调用extension
方法
int.AnExtensionMethod()
这是可能的还是我必须要调用一个实例?
答案 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 MSDN和this answer to a very simalar question。
我希望这会有所帮助。