静态类的扩展方法?
可能重复:
我可以将扩展方法添加到现有的静态类吗?
我知道我可以通过以下方式扩展课程。 我有一个静态类,我想扩展。 我怎么能这样做? 我想写ClassName.MyFunc()
static public class SomeName { static public int HelperFunction(this SomeClass v)
您不能在静态类上使用扩展方法,因为扩展方法仅适用于可实例化类型,并且无法实例化静态类。
检查此代码..
public static bool IsEmail(this string email) { if (email != null) { return Regex.IsMatch(email, "EmailPattern"); } return false; }
IsEmail()的第一个参数是扩展类型实例,而不仅仅是类型本身。 您永远不能拥有静态类型的实例。
您无法在C#中扩展静态类。 扩展方法通过定义在某种类型上作为实例方法出现的静态方法来工作。 您无法定义扩展静态类的扩展方法。
您可能希望将静态类转换为单例 。 然后只有一个类的实例。 你可以在它上面使用扩展方法,因为它是一个实例。
如果您可以访问该类的源代码,则可以使用此选项。