小编典典

静态扩展方法[

all

有什么方法可以将静态扩展方法添加到类中。

具体来说,我想重载Boolean.Parse以允许int参数。


阅读 60

收藏
2022-08-08

共1个答案

小编典典

简而言之,不,你不能。

长答案,扩展方法只是语法糖。IE:

如果您对字符串有扩展方法,可以说:

public static string SomeStringExtension(this string s)
{
   //whatever..
}

当你调用它时:

myString.SomeStringExtension();

编译器只是把它变成:

ExtensionClass.SomeStringExtension(myString);

如您所见,静态方法无法做到这一点。

我突然想到另一件事:能够在现有类上添加静态方法的真正 意义是什么? 您可以拥有自己的帮助程序类来做同样的事情,那么能够这样做的真正好处是什么:

Bool.Parse(..)

对比

Helper.ParseBool(..);

并没有真正带来太多的桌子......

2022-08-08