我有许多类(超过 40 个),每个类都有许多字段(通常是字符串或列表)。然后我有大约 8-10 个函数可以在每个类上运行(但是这些函数不是相关类的一部分......),除了它所处理的字段名称之外,每个函数都几乎相同。所以:
public static class CMix{
private static List<CType1> gListType1;
private static List<CType2> gListType2;
//...
public static Tuple<bool, String> FetchType1F1(int aIndex){
//Bounds checking + return item from gListType1.
}
public static Tuple<boo, String> FetchType1F2(int aIndex){
//Bounds checking + return item from gListType1.
}
//...
public static Tuple<bool, ulong> FetchType2AB2(int aIndex){
//Bounds checking + return item from gListType2.
}
}
public class CType1{
public String mF1;
public String mF2;
public ulong mF3;
}
public class CType2{
public String mAB1;
public ulong mAB2;
}
上面的代码表明这些方法只是 get/set 方法,它们比这更复杂一些,尽管为简洁起见,我忽略了这一点。这也是方法不属于匹配类的原因(即类 CType1 中的 FetchType1F1)。
困扰我的是,除了正在处理的字段和 List 之外,每个方法的内容几乎相同。我想我也许可以使用泛型来创建几个基本方法,但是我正在努力研究如何引用正确的字段:
public static String FetchGenericString <ListType> (List<ListType> aList, int aIndex) {
//For now return empty string.
return "";
}
public static Tuple<bool, String> FetchType1F1(int aIndex){
String mResult=FetchGenericString(gListType1, 0);
}
我不确定如何将字段名称传递给 FetchGenericString 以便我可以调用它:
String mResult=FetchGenericString(gListType1, 0, mF1);
这甚至可能不是解决问题的最佳方法,所以我会听取任何建议。
谢谢你。