13

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

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

3 回答 3

15

您不能在静态类上使用扩展方法,因为扩展方法仅适用于可实例化类型,而静态类无法实例化。

检查此代码..

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

        return false;
    }

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

于 2010-01-05T06:06:17.630 回答
10

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

于 2010-01-05T06:01:50.697 回答
0

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

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

于 2010-01-05T06:07:10.670 回答