繁体   English   中英

必须在非泛型静态类中定义扩展方法

[英]Extension method must be defined in non-generic static class

错误在:

public partial class Form2 : Form

可能的原因:

public static IChromosome To<T>(this string text)
{
    return (IChromosome)Convert.ChangeType(text, typeof(T));
}

尝试(没有静态关键字):

public IChromosome To<T>(this string text)
{
    return (IChromosome)Convert.ChangeType(text, typeof(T));
}

如果从参数中删除“this”,它应该可以工作。

public static IChromosome To<T>(this string text)

应该:

public static IChromosome To<T>(string text)

包含扩展名的类必须是静态的。 你的是:

public partial class Form2 : Form

这不是静态类。

你需要像这样创建一个类:

static class ExtensionHelpers
{
    public static IChromosome To<T>(this string text) 
    { 
        return (IChromosome)Convert.ChangeType(text, typeof(T)); 
    } 
}

包含扩展方法。

因为您的包含类不是静态的,所以Extension方法应该在静态类中。 该类也应该是非嵌套的。 扩展方法(C#编程指南)

我的问题是因为我在分部类中创建了一个静态方法:

public partial class MainWindow : Window{

......

public static string TrimStart(this string target, string trimString)
{
    string result = target;

    while (result.StartsWith(trimString)){
    result = result.Substring(trimString.Length);
    }

    return result;
    }
} 

当我删除该方法时,错误就消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM