【发布时间】:2017-08-13 19:22:10
【问题描述】:
我正在创建一个搜索算法,该算法使用我创建的自定义对象搜索列表。它们共享相似的属性,但我似乎无法“隐式”访问这些属性..?一个例子:
public class Exit{
int ID {get;set;}
}
public class Room{
int ID {get;set;}
}
static void Main(string[] args){
List<Exit> exits = new List<Exit>();
List<Room> rooms = new List<Room>();
// added numerous instances of objects to both lists
int getExitID = _GetIDFromList(exits, 2); //example
int getRoomID = _GetIDFromList(rooms, 7); //example
}
private int _GetIDFromList<T>(List<T> list, int indexOfList){
return list[indexOfList].ID; // this gives me error it can't find ID
}
这可能吗?我需要修改什么才能做到这一点??
谢谢。
【问题讨论】:
-
创建两个类都实现的通用接口。然后您可以轻松地为您的方法添加通用约束,例如
int _GetIDFromList<T>(List<T> list, int indexOfList) where T: MyInterface