具有特定类型的泛型列表上的扩展名

本文关键字:泛型 列表 扩展名 类型 | 更新日期: 2023-09-27 18:34:45

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

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

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

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

具有特定类型的泛型列表上的扩展名

当然是:

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

目前尚不清楚您所说的myList<MyClass>是什么意思,但此方法适用于所有List<MyClass>

试试这个:

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