22

错误:

public partial class Form2 : Form

可能的原因:

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

尝试过(没有 static 关键字):

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

4 回答 4

47

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

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

应该:

public static IChromosome To<T>(string text)
于 2013-10-21T21:34:58.327 回答
19

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

public partial class Form2 : Form

这不是一个静态类。

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

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

包含扩展方法。

于 2012-05-02T10:50:49.160 回答
3

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

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;
    }
} 

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

于 2018-01-08T17:33:09.810 回答
1

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

于 2012-05-02T10:52:17.220 回答