Mid*_*hat 157 c# extension-methods
可能重复:
我可以向现有静态类添加扩展方法吗?
有什么办法可以为类添加静态扩展方法.
特别是我想重载Boolean.Parse以允许int参数.
BFr*_*ree 148
总之,不,你不能.
答案很长,扩展方法只是语法糖.IE:
如果你对字符串有一个扩展方法,那就说:
public static string SomeStringExtension(this string s)
{
   //whatever..
}
然后你打电话给它:
myString.SomeStringExtension();
编译器只是把它变成:
ExtensionClass.SomeStringExtension(myString);
正如您所看到的,静态方法无法做到这一点.
还有一件事让我意识到:能够在现有类上添加静态方法真正意义何在?您可以拥有自己的帮助程序类来执行相同的操作,因此能够执行以下操作的真正好处是:
Bool.Parse(..)
与
Helper.ParseBool(..);
真的没有带来太多的东西......
bsn*_*eze 76
特别是我想重载Boolean.Parse以允许int参数.
int的扩展是否有效?
public static bool ToBoolean(this int source){
    //do it
    //return it
}
然后你可以像这样调用它:
int x = 1;
bool y=x.ToBoolean();
| 归档时间: | 
 | 
| 查看次数: | 100912 次 | 
| 最近记录: |