1

私は問題に悩まされました。辞書を継承するクラスがありますが、辞書はテンプレート型である必要があります。辞書クラスをクラスに継承するまで成功しました。しかし、派生辞書をテンプレートとして作成する方法がわかりません。これを手伝ってください。以下の私のコードを入手してください。

public class MGDDictionary<TKey, TValue> : Dictionary<string,string>
    {
        public MGDDictionary()
        {

        }

        public static SelectedOption value { get; set; }

        public override string ToString()
        {
            return EntitySerializer.ObjToString<MGDDictionary<TKey, TValue>>(serializer, this);
        }
        public static MGDDictionary<TKey, TValue> FromString(string objectStream)
        {
            return EntitySerializer.FromString<MGDDictionary<TKey,TValue>>(serializer,objectStream);
        }
    }

上記のコードでは、この行がテンプレートを含む辞書を継承するクラスである必要があります。

public class MGDDictionary<TKey, TValue> : Dictionary<string,string>

さらに多くの前もって感謝します

4

1 に答える 1

2

クラスがジェネリックであることは意味がありません。タイプパラメータを削除するように変更できると思います:

public class MGDDictionary : Dictionary<string,string>
{
    public MGDDictionary()
    {

    }

    public static SelectedOption value { get; set; }

    public override string ToString()
    {
        return EntitySerializer.ObjToString<MGDDictionary>(serializer, this);
    }
    public static MGDDictionary FromString(string objectStream)
    {
        return EntitySerializer.FromString<MGDDictionary>(serializer,objectStream);
    }
}

一方、独自のコレクション クラスを作成することは、ほとんど良い考えではありません。一般に、継承よりも構成を優先します。

また、呼び出される静的プロパティvalueは、名前と静的性の両方において、ほぼ確実に悪い考えであることに注意してください...

于 2012-08-22T14:19:26.633 に答える