静态类的扩展方法? [复制]
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 扩展方法 ( 扩展静态方法示例 | 扩展实例方法示例 | 扩展实例方法与扩展静态方法代码相同 )