0

我有以下定义:

public class BaseEntity 
{
    ...
    public BaseEntity()
    {

    }
}

public class KeyValuePair
{
    public string key;
    public string value;
    public string meta;
}

public class KeyValuePairList : BaseEntity
{
    public List<KeyValuePair> List {set; get;}

    public KeyValuePairList(IEnumerable<KeyValuePair> list)
    {
        this.List = new List<KeyValuePair>();
        foreach (KeyValuePair k in list) {
            this.List.Add(k);
        }
    }
}

我还有 10 个不同的类KeyValuePairKeyValuePairList它们都实现了相同的目的——前者定义了对象,后者定义了应该放置这些对象的列表。如何将此功能合并到基类BaseEntity中,这样我就不必在每个单独的类中重新定义列表实例化逻辑,即我希望能够根据传递给构造函数的对象类型来实例化列表?有什么建议么?

4

1 回答 1

4

可以使用泛型吗?

public class BaseEntity<T> where T: class
{
    public List<T> List { set; get; }

    public BaseEntity(IEnumerable<T> list)
    {
        this.List = new List<T>();
        foreach (T k in list)
        {
            this.List.Add(k);
        }
    }
}

public class KeyValuePair
{
    public string key;
    public string value;
    public string meta;
}

public class KeyValuePairList : BaseEntity<KeyValuePair>
{
    public KeyValuePairList(IEnumerable<KeyValuePair> list) 
        : base(list) { }
}
于 2012-06-30T22:38:01.977 回答