В Script #, как можно перечислить список, от которого он наследуется? - PullRequest
0 голосов
/ 03 декабря 2011

В этом примере:

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 Ответ

3 голосов
/ 04 декабря 2011

Во-первых, очевидно, что невозможно определить универсальный тип в 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);
}
...