静态类的扩展方法?

发布于 2024-08-16 19:17:14 字数 192 浏览 5 评论 0原文

我知道我可以执行以下操作来延长课程。我有一个静态类,我想扩展。我可以怎样做呢?我想写 ClassName.MyFunc()

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

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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

隐诗 2024-08-23 19:17:14

静态类上不能有扩展方法,因为扩展方法
仅适用于可实例化
类型和静态类不能
实例化。

检查此代码。

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

        return false;
    }

IsEmail() 的第一个参数是扩展类型实例,而不仅仅是类型本身。你永远不可能拥有静态类型的实例。

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.

拥有 2024-08-23 19:17:14

您无法在 C# 中扩展静态类。扩展方法通过定义在某些类型上显示为实例方法的静态方法来工作。您不能定义扩展静态类的扩展方法。

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.

甜妞爱困 2024-08-23 19:17:14

您可能希望将静态类转换为单例。那么该类就只有一个实例。您可以对其使用扩展方法,因为它是一个实例。

前提是您可以访问该类的源代码。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文