русский
Germany.ruForen → Архив Досок→ Programmierung

C# - вернуть типизированную коллекцию

05.04.24 12:41
Re: C# - вернуть типизированную коллекцию
 
alex445 патриот
in Antwort Срыв покровов 05.04.24 12:08, Zuletzt geändert 05.04.24 12:42 (alex445)
public static IEnumerable<T> GetData<T>() where T : Base
    => typeof(T) switch
    {
        _ when typeof(T) == typeof(Derived1) => Derived1Collection, //здесь компилятор не уверен, что твой Т является Derived1
        ...
    };

Да, такое объяснение тоже встречал - в compile time он не уверен, и ему нужно явное приведение. А в run time все дженерики становятся явными типами, поэтому по идее код должен нормально выполняться, если заигнорить эту ошибку компиляции. Но меня вариант с явным приведением устраивает - не будем ломать статический анализ компилятора.

 

Sprung zu