通用方法,其中T是实现接口的List

时间:2011-07-12 23:45:39

标签: c# generics

这类似于C# - Multiple generic types in one list

但是,我想要一个泛型方法来接受所有实现相同接口的对象列表。

此代码给出了没有隐式引用转换的错误。

public interface ITest { }
public class InterfaceUser : ITest { }
public class TestClass
{
    void genericMethod<T>(T myList) where T : List<ITest> { }
    void testGeneric()
    {
        genericMethod(new List<InterfaceUser>());
    }
}

可以这样做吗?

1 个答案:

答案 0 :(得分:7)

T定义为ITest并将List<T>作为参数

public interface ITest { }
public class InterfaceUser : ITest { }
public class TestClass
{
    void genericMethod<T>(List<T> myList) where T : ITest { }
    void testGeneric()
    {
        this.genericMethod(new List<InterfaceUser>());
    }
}