una metodos metodo mandar llamar invocar extension estatica ejemplo como clases clase anidados c# .net compiler-errors extension-methods

c# - metodos - El método de extensión se debe definir en una clase estática no genérica



metodos anidados c# (4)

Error en:

public partial class Form2 : Form

Causa probable:

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

Intentado (sin palabra clave estática):

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



La clase que contiene la extensión debe ser estática. Los tuyos están en

public partial class Form2 : Form

que no es una clase estática

Necesitas crear una clase así:

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

Para contener los métodos de extensión.


Mi problema fue causado porque creé un método estático dentro de la clase parcial:

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

Cuando quité el método, el error desapareció.


Si eliminas "esto" de tus parámetros debería funcionar.

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

debiera ser:

public static IChromosome To<T>(string text)