在script#中,如何枚举继承的列表?

本文关键字:枚举 继承 列表 script# 何枚举 | 更新日期: 2023-09-27 18:16:40

在本例中:

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

我如何列举这个列表?

在script#中,如何枚举继承的列表?

首先,显然不能在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);
}