在Script#中,如何枚举一个继承自的列表?

时间:2011-12-03 17:57:02

标签: c# script#

在这个例子中:

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的公开定义。

如何枚举此列表?

1 个答案:

答案 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);
}