静态类的扩展方法? [复制]

Posted

技术标签:

【中文标题】静态类的扩展方法? [复制]【英文标题】:Extension methods on a static class? [duplicate] 【发布时间】:2011-01-01 13:02:09 【问题描述】:

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

static public class SomeName

    static public int HelperFunction(this SomeClass v)

【问题讨论】:

【参考方案1】:

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

检查此代码..

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

        return false;
    

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

你可能想把你的静态类变成singleton。然后将只有一个类的实例。你可以在它上面使用扩展方法,因为它是一个实例。

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

【讨论】:

我们能对此做出解释吗(我讨厌单身)? 嗯,你不会期望只有一个实例“我讨厌单身”吧? 谁能删除我的我讨厌单身我讨厌单身评论? @acidzombie24:我喜欢你的评论。可能有高权限(和高分)的人出于某种原因删除了它,也许他们不明白这个笑话。本站由会员经营。太糟糕了。

以上是关于静态类的扩展方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

用静态类扩展类的方法

扩展方法

有啥方法可以隐藏 html 静态网站上的 .html 扩展名? [复制]

GroovyGroovy 扩展方法 ( 扩展静态方法示例 | 扩展实例方法示例 | 扩展实例方法与扩展静态方法代码相同 )

部分类静态类Object类ToString()方法扩展方法的使用

扩展方法