Можно ли узнать тип элемента во время компиляции без класса, реализующего IEnumerable <T>?
резюме
Не обращайте внимания на случай, когда объект не может быть представлен в виде массива, возможно ли определить метод расширения (статический), например:
public static ? ToArray<TSource>(this TSource source);
и возвращает массив объекта, если он состоит из какой-либо последовательности элементов? И если да, что бы?
быть?
объяснение
Я думал о следующих декларациях:
public static TElement[] ToArray<TElement>(this IEnumerable<TElement> source);
public static ? ToArray<TSource>(this IEnumerable source);
Но я не могу предположить, что неизвестный класс должен быть реализованIEnumerable<T>
или жеIEnumerable
, Я даже не могу определить?
в случае, если это простоIEnumerable
который вне общего определения.
И я также думал оArray
класс:
public static Array ToArray<TSource>(this TSource source);
Но это означает, что тип элемента был неизвестен во время компиляции.
Так что мне интересно, возможно ли узнать тип элемента во время компиляции без реализации классаIEnumerable<T>
?