La méthode d'Extension doit être définie dans une classe statique non générique
Erreur:
public partial class Form2 : Form
cause Probable:
public static IChromosome To<T>(this string text)
{
return (IChromosome)Convert.ChangeType(text, typeof(T));
}
Tenté (sans le mot-clé static):
public IChromosome To<T>(this string text)
{
return (IChromosome)Convert.ChangeType(text, typeof(T));
}
17
demandé sur
abatishchev
2012-05-02 14:49:31
4 réponses
si vous supprimez "ceci" de vos paramètres, cela devrait fonctionner.
public static IChromosome To<T>(this string text)
devrait être:
public static IChromosome To<T>(string text)
28
répondu
imPrettyAwesomeLikeThat
2013-10-21 21:53:24
La classe contenant l'extension doit être statique. Les vôtres sont dans:
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.
18
répondu
DaveShaw
2012-05-02 10:54:22
parce que votre classe containing n'est pas statique, la méthode D'Extension devrait être à l'intérieur d'une classe statique. Cette classe devrait être non imbriquées. Méthodes D'Extension (C # Guide De Programmation)
1
répondu
Habib
2012-05-02 10:52:17
mon problème a été causé parce 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;
}
}
Quand j'ai enlevé la méthode, l'erreur a disparu.
1
répondu
Kobbi Gal
2018-01-08 17:33:09