2012-02-21 18 views
26

Tengo una lista que contiene FrameworkElements y quiero crear un método de extensión llamado MoveToTop. Todo lo que hará es aceptar un elemento que es parte de esa lista y moverlo al principio de la lista. Sé que esto podría lograrse sin el uso de un método de extensión, pero me gustaría que se implemente como un método de extensión.Cómo crear un método de extensión en la colección genérica

Tengo problemas para tratar de descubrir la sintaxis para crear un método de extensión que acepte un parámetro genérico. Sé que esto no es correcto, pero si alguien pudiera darme una idea de cómo lograrlo, lo agradecería.

public static class Extensions 
{ 
    public static void MoveToTop(this ICollection<T> sequence) 
    { 
     //logic for moving the item goes here. 
    } 
} 
+0

más sobre los métodos genéricos aquí http://msdn.microsoft.com/en-us/library/twcad0zb%28v=vs.100%29.aspx :) – radbyx

Respuesta

49

estaban cerca, sólo tiene el <T> después del nombre del método antes del paréntesis. Ahí es donde se coloca la lista de parámetros de tipo genérico para métodos genéricos. Declara los parámetros de tipo genérico que aceptará el método, que luego los hace disponibles para ser utilizados en los argumentos, valores de retorno y cuerpo del método.

public static class Extensions 
{ 
    public static void MoveToTop<T>(this ICollection<T> sequence) 
    { 
     //logic for moving the item goes here. 
    } 
} 
Cuestiones relacionadas