有没有什么方法可以将静态扩展方法添加到类中。
具体来说,我想重载 Boolean.Parse以允许 int参数。
Boolean.Parse
int
简而言之,不,你不能。
长话短说,扩展方法只是句法糖:
如果你有一个关于 string 的扩展方法,比如说:
public static string SomeStringExtension(this string s) { //whatever.. }
当你说:
myString.SomeStringExtension();
编译器只是把它变成:
ExtensionClass.SomeStringExtension(myString);
因此,正如您所看到的,对于静态方法没有办法这样做。
另一件事刚刚让我明白了: 能够在现有类上添加静态方法的 点到底是什么?你可以有自己的 helper 类来做同样的事情,那么这样做的好处是什么呢:
Bool.Parse(..)
对。
Helper.ParseBool(..);
没什么好谈的。
不,但是你可以有这样的东西:
bool b; b = b.YourExtensionMethod();
具体来说,我想重载 Boolean.Parse以允许一个 int 参数。
Int 的扩展是否有效?
public static bool ToBoolean(this int source){ // do it // return it }
然后你可以这样称呼它:
int x = 1; bool y = x.ToBoolean();