依赖于另一种类型C#创建泛型类型

时间:2012-08-30 07:20:10

标签: c# list generics sortedlist

我有一个定义为

的类
public class SerializableList<TList, TValue> : IXmlSerializable where TList : IList<TValue>

当尝试实现构造函数以确保我有一个TList对象时,会出现问题。

public SerializableList()
{
    FList = new TList();
}

这会抛出没有new()约束的预期错误。因为我希望能够使用

的定义
var myList = new SerializableList<SortedList<string>, string>();

这是否意味着我以错误的方式看待事物,或者有没有办法定义新的FList对象?

2 个答案:

答案 0 :(得分:2)

public class SerializableList<TList, TValue> : IXmlSerializable
    where TList : IList<TValue>, new()

答案 1 :(得分:1)

你想要的是Generic Type Constraints

在您的实例中,类声明需要

public class SerializableList<TList, TValue> 
    : IXmlSerializable where TList : IList<TValue>, new()

new()强制TList必须具有无参数构造函数