具有特定类型的通用列表的扩展?

时间:2014-12-19 11:26:21

标签: c# generics extension-methods

是否可以在具有特定类型的通用列表上创建扩展方法,例如

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

myList<MyClass>.MyExtensionMethod();

重要的是,MyExtensionMethod仅适用于MyClass类型的列表。

我怀疑这是不可能的,那么有什么选择来实现这个目标?

2 个答案:

答案 0 :(得分:16)

当然是:

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

myList<MyClass>并不清楚您的意思,但此方法适用于List<MyClass>的所有实例

答案 1 :(得分:2)

试试这个:

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