开发者

Extension methods on a static class? [duplicate]

开发者 https://www.devze.com 2022-12-15 23:03 出处:网络
This question already has answers here: Can I add extension methods to an existing static clas开发者_开发知识库s?
This question already has answers here: Can I add extension methods to an existing static clas开发者_开发知识库s? (18 answers) Closed 2 years ago.

I know i can do the below to extend a class. I have a static class i would like to extend. How might i do it? I would like to write ClassName.MyFunc()

static public class SomeName
{
    static public int HelperFunction(this SomeClass v)


You can't have extension methods on static classes because extension methods are only applicable to instantiable types and static classes cannot be instantiated.

Check this code..

    public static bool IsEmail(this string email)
    {
        if (email != null)
        {
            return Regex.IsMatch(email, "EmailPattern");
        }

        return false;
    }

First parameter to IsEmail() is the extending type instance and not just the type itself. You can never have an instance of a static type.


You can't extend static classes in C#. Extension methods work by defining static methods that appear as instance methods on some type. You can't define an extension method that extends a static class.


You might want to turn your static class into a singleton. Then there will only be one instance of the class. And you can use extension methods on it because it's an instance.

This is provided you have access to the source code of the class.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号