0

私は次のように定義されているクラスを持っています

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 オブジェクトを定義する方法はありますか?

4

2 に答える 2

2
public class SerializableList<TList, TValue> : IXmlSerializable
    where TList : IList<TValue>, new()
于 2012-08-30T07:21:57.863 に答える
1

あなたが欲しいのはジェネリック型制約です

あなたのインスタンスでは、クラス宣言は

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

パラメーターなしのコンストラクターが必要なWherenew()強制TList

于 2012-08-30T07:24:47.143 に答える