Мое первое обобщенное приведение ( C #)

Я был очень взволнован при написании этой универсальной функции, когда компилятор выдал ошибку ( не удалось преобразовать T в System .Web.UI.Control )

Я в основном передаю ему тип, когда вызываю его, и он ищет все элементы управления этого типа. Ошибка возникает на l.Add ((T) ctrl);

    private List<T> RecurseTypes<T>(Control ctrls)
    {
        var l = new List<T>();
        foreach (var ctrl in ctrls.Controls)
            if (ctrl.GetType() is T)
                l.Add((T)ctrl);
        return l;
    }

Я что-то упускаю или мне просто не повезло?

5
задан maxp 24 January 2011 в 13:36
поделиться