エラー:
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));
}
}
拡張メソッドを含めるため。
私の問題は、部分クラス内に静的メソッドを作成したために発生しました。
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;
}
}
メソッドを削除すると、エラーはなくなりました。
包含クラスは静的ではないため、Extensionメソッドは静的クラス内にある必要があります。そのクラスも同様にネストされていない必要があります。 拡張メソッド(C#プログラミングガイド)