2012-02-21 18 views
26

Mam listę zawierającą FrameworkElements i chcę utworzyć metodę rozszerzenia o nazwie MoveToTop. Wystarczy, że zaakceptujesz element będący częścią tej listy i przeniesiesz go na początek listy. Wiem, że można to osiągnąć bez użycia metody rozszerzenia, ale chciałbym, aby została zaimplementowana jako metoda rozszerzenia.Jak utworzyć metodę rozszerzenia dla kolekcji ogólnej

Mam problem z wypróbowaniem metody tworzenia metody rozszerzającej, która akceptuje parametr ogólny. Wiem, że to nie jest poprawne, ale jeśli ktoś mógłby dać mi pomysł, jak to osiągnąć, byłbym wdzięczny.

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

Więcej o Generic Metod tutaj http://msdn.microsoft.com/en-us/library/twcad0zb%28v=vs.100%29.aspx :) – radbyx

Odpowiedz

49

Byliście blisko, po <T> trzeba podać nazwę metody przed nawiasem. Tutaj znajduje się ogólna lista parametrów typów dla metod ogólnych. Deklaruje parametry rodzajowe, które metoda zaakceptuje, a następnie udostępnia je w argumentach, wartościach zwracanych i treści metody.

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