C# 具有特定类型的泛型列表上的扩展?
是否可以在泛型列表上创建一个扩展方法,例如使用特定类型的C# 具有特定类型的泛型列表上的扩展?,c#,generics,extension-methods,C#,Generics,Extension Methods,是否可以在泛型列表上创建一个扩展方法,例如使用特定类型的 List<MyClass> myList = new List<MyClass>(); myList<MyClass>.MyExtensionMethod(); List myList=new List(); myList.MyExtensionMethod(); MyExtensionMethod只适用于MyClass类型的列表,这一点很重要 我怀疑这是不可能的,那么有什么办法可以实现这一点呢?
List<MyClass> myList = new List<MyClass>();
myList<MyClass>.MyExtensionMethod();
List myList=new List();
myList.MyExtensionMethod();
MyExtensionMethod只适用于MyClass类型的列表,这一点很重要
我怀疑这是不可能的,那么有什么办法可以实现这一点呢?当然是:
public static void MyExtensionMethod(this List<MyClass> m)
publicstaticvoidmyextensionmethod(此列表为m)
不清楚您所说的myList
是什么意思,但此方法适用于List
的所有实例,请尝试以下方法:
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
}
}
公共静态类ListExtensions
{
公共静态void ExtensionMethodName(此列表),其中T:MyClass
{
//代码
}
//或
公共静态void ExtensionMethodName(此列表)
{
//代码
}
}
为什么不试试呢?确切地说,你“怀疑是不可能的”工作得很好。编写扩展方法要比来这里询问更快。:)myList
是一个变量名。不能将泛型参数添加到变量名称中。可以使用与编写任何其他扩展方法完全相同的方法来执行此操作。为什么不试试呢?