我正在尝试整合一些常用功能。
我有几个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想要完成的事情了解不够,或者是否有可能实现这样的过程。
任何帮助?