子类通用List方法到Serializable类

时间:2017-11-10 23:43:48

标签: c# oop serialization

我正在尝试整合一些常用功能。

我有几个serializable个类,它们包含一个唯一类型的serializable个对象的列表。

例如:

[Serializable]
public class ArrowData {

public List<ArrowItem> listOfItems;

public ArrowData() {
    listOfItems = new List<ArrowItem>();

}
//ADD
public void AddItemToInventory(ArrowItem item) {
    listOfItems.Add(item);
}

//DELETE
public void RemoveItemFromInventory(ArrowItem item) {
    listOfItems.Remove(item);
}

//CLEAR ALL
public void RemoveAllInventory() {
    listOfItems.Clear();
}

//GET ALL
public List<ArrowItem> GetFullListOfInventory() {
    return listOfItems;
}

//Unique methods for ArrowData down here

}


[Serializable]
public class SwordData {

public List<SwordItem> listOfItems;

public ArrowData() {
    listOfItems = new List<SwordItem>();

}
//ADD
public void AddItemToInventory(SwordItem item) {
    listOfItems.Add(item);
}

//DELETE
public void RemoveItemFromInventory(SwordItem item) {
    listOfItems.Remove(item);
}

//CLEAR ALL
public void RemoveAllInventory() {
    listOfItems.Clear();
}

//GET ALL
public List<SwordItem> GetFullListOfInventory() {
    return listOfItems;
}

//Unique methods for SwordData down here

}

我想把所有“CRUD”操作放到他们自己的类中,只是让我的ArrowData,SwordData等继承它。

所以我开始了这个:

using System;

[Serializable]
public class DataProcessor<T> where T : List<T> {

    public List<T> listOfItems;

    public DataProcessor(T type) {

        listOfItems = new List<type>();


    }
    //ADD
    public void AddItemToInventory(T item) {
        listOfItems.Add(item);
    }

    //DELETE
    public void RemoveItemFromInventory(T item) {
        listOfItems.Remove(item);
    }

    //CLEAR ALL
    public void RemoveAllInventory() {
        listOfItems.Clear();
    }

    //GET ALL
    public List<T> GetFullListOfInventory() {
        return listOfItems;
    }
}

这样我的ArrowData课程就会出现这样的情况: 这只是伪代码,因为我还不知道如何实现它。

[Serializable]
public class ArrowData  : DataProcessor {

    public ArrowData() {
        listOfItems = new DataProcessor(ArrowItem);

    }
}

我在传递唯一对象时,我想要一个列表。

但是我对Google想要完成的事情了解不够,或者是否有可能实现这样的过程。

任何帮助?

0 个答案:

没有答案