我有一个定义为
的类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对象?
答案 0 :(得分:2)
public class SerializableList<TList, TValue> : IXmlSerializable
where TList : IList<TValue>, new()
答案 1 :(得分:1)
在您的实例中,类声明需要
public class SerializableList<TList, TValue>
: IXmlSerializable where TList : IList<TValue>, new()
new()
强制TList
必须具有无参数构造函数