2014-12-19 2 views
-1

Можно создать метод расширения общего списка с определенного типа, напримерРасширение на общий список определенного типа?

List<MyClass> myList = new List<MyClass>(); 

myList<MyClass>.MyExtensionMethod(); 

Ее важно, что MyExtensionMethod работает только со списком типа MyClass.

Я подозреваю, что это невозможно, поэтому какие варианты для этого?

+1

Почему бы не попробовать ? Точно то, что вы «подозреваете, невозможно», отлично работает. Было бы быстрее написать метод расширения, чем приходить сюда и спрашивать. :) – bzlm

+1

'myList' - это имя переменной. Вы не можете добавлять общие параметры к именам переменных –

+1

Это можно сделать точно так же, как и любой другой метод расширения. Почему бы просто не попробовать? –

ответ

12

Ofcourse ней:

public static void MyExtensionMethod(this List<MyClass> m) 

Это не ясно, что вы имеете в виду myList<MyClass>, но этот метод будет работать для всех экземпляров List<MyClass>

1

Попробуйте это:

public static class ListExtensions 
    { 
     public static void ExtensionMethodName<T>(this List<T> list) where T : MyClass 
     { 
      //Code 
     } 

     // Or 
     public static void ExtensionMethodName(this List<MyClass> list) 
     { 
      //Code 
     } 
    } 
Смежные вопросы