我知道我可以执行以下操作来扩展课程。我有一个我想扩展的静态类。我该怎么做?我想写ClassName.MyFunc()
static public class SomeName
{
static public int HelperFunction(this SomeClass v)
我知道我可以执行以下操作来扩展课程。我有一个我想扩展的静态类。我该怎么做?我想写ClassName.MyFunc()
static public class SomeName
{
static public int HelperFunction(this SomeClass v)
您不能在静态类上使用扩展方法,因为扩展方法仅适用于可实例化类型,而静态类无法实例化。
检查此代码..
public static bool IsEmail(this string email)
{
if (email != null)
{
return Regex.IsMatch(email, "EmailPattern");
}
return false;
}
IsEmail()的第一个参数是扩展类型实例,而不仅仅是类型本身。您永远不能拥有静态类型的实例。
您不能在 C# 中扩展静态类。扩展方法通过定义在某些类型上显示为实例方法的静态方法来工作。您不能定义扩展静态类的扩展方法。
你可能想把你的静态类变成一个单例。然后将只有一个类的实例。你可以在它上面使用扩展方法,因为它是一个实例。
前提是您可以访问该类的源代码。