Вход на сайт
C# - вернуть типизированную коллекцию
1698 просмотров
Перейти к просмотру всей ветки
в ответ Срыв покровов 05.04.24 12:08, Последний раз изменено 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 все дженерики становятся явными типами, поэтому по идее код должен нормально выполняться, если заигнорить эту ошибку компиляции. Но меня вариант с явным приведением устраивает - не будем ломать статический анализ компилятора.