Erreur à:
public partial class Form2 : Form
Cause probable:
public static IChromosome To<T>(this string text)
{
return (IChromosome)Convert.ChangeType(text, typeof(T));
}
Tentative (sans mot clé statique):
public IChromosome To<T>(this string text)
{
return (IChromosome)Convert.ChangeType(text, typeof(T));
}
Si vous supprimez "this" de vos paramètres, cela devrait fonctionner.
public static IChromosome To<T>(this string text)
devrait être:
public static IChromosome To<T>(string text)
La classe contenant l'extension doit être statique. Vous êtes en:
public partial class Form2 : Form
qui n'est pas une classe statique.
Vous devez créer une classe comme ceci:
static class ExtensionHelpers
{
public static IChromosome To<T>(this string text)
{
return (IChromosome)Convert.ChangeType(text, typeof(T));
}
}
Pour contenir les méthodes d'extension.
Mon problème est dû au fait que j'ai créé une méthode statique à l'intérieur de la classe partielle:
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;
}
}
Lorsque j'ai supprimé la méthode, l'erreur a disparu.
Étant donné que votre classe conteneur n'est pas statique, la méthode d'extension doit se trouver dans une classe statique. Cette classe doit également être non imbriquée. Méthodes d'extension (Guide de programmation C #)