在这个例子中:
abstract class MyList<T>: List<T>
{
public T Find(int? id)
{
foreach(T obj in this)
{
if(Compare(id, obj))
return obj;
}
return default(T);
}
protected abstract bool Compare(int? id, T obj);
}
我收到错误
foreach语句无法对
LearningScriptSharp.MyList<T>
类型的变量进行操作,因为LearningScriptSharp.MyList<T>
不包含GetEnumerator
的公开定义。
如何枚举此列表?
答案 0 :(得分:3)
首先,显然无法在Script#中定义泛型类型...编译器失败,没有错误消息。
所以我会接受这个,除非有人有更好的建议:
abstract class MyList
{
private List<Object> innerList = new List<Object>();
public Object Find(int? id)
{
foreach(Object obj in innerList)
{
if(Compare(id, obj))
return obj;
}
return default(Object);
}
protected abstract bool Compare(int? id, Object obj);
}