C# 扩展方法必须在非泛型静态类中定义
错误位于:C# 扩展方法必须在非泛型静态类中定义,c#,.net,compiler-errors,extension-methods,C#,.net,Compiler Errors,Extension Methods,错误位于: public partial class Form2 : Form 可能原因: public static IChromosome To<T>(this string text) { return (IChromosome)Convert.ChangeType(text, typeof(T)); } publicstaticichromosometo(此字符串文本) { return(IChromosome)Convert.ChangeType(text,ty
public partial class Form2 : Form
可能原因:
public static IChromosome To<T>(this string text)
{
return (IChromosome)Convert.ChangeType(text, typeof(T));
}
publicstaticichromosometo(此字符串文本)
{
return(IChromosome)Convert.ChangeType(text,typeof(T));
}
尝试(没有静态关键字):
public IChromosome To(此字符串文本)
{
return(IChromosome)Convert.ChangeType(text,typeof(T));
}
包含扩展的类必须是静态的。您的地址是:
public partial class Form2 : Form
这不是一个静态类
您需要创建这样一个类:
static class ExtensionHelpers
{
public static IChromosome To<T>(this string text)
{
return (IChromosome)Convert.ChangeType(text, typeof(T));
}
}
静态类扩展助手
{
公共静态IChromosome To(此字符串文本)
{
return(IChromosome)Convert.ChangeType(text,typeof(T));
}
}
包含扩展方法。因为包含类不是静态的,所以扩展方法应该在静态类中。该类也应该是非嵌套的 如果从参数中删除“this”,它应该可以工作
public static IChromosome To<T>(this string text)
publicstaticichromosometo(此字符串文本)
应该是:
public static IChromosome To<T>(string text)
publicstaticichromosometo(字符串文本)
导致我的问题的原因是我在分部类中创建了一个静态方法:
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;
}
}
当我删除该方法时,错误消失了。就在我认为这实际上是一个错误的时候。这是有效的,但你能解释为什么吗!?我厌倦了得到解决问题的正确答案,但不理解问题或解决方案。
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;
}
}