É possível saber o tipo de elemento em tempo de compilação sem uma classe implementando IEnumerable <T>?
resumo
Ignore o caso de que um objeto não pode ser representado como um array, é possível definir um método de extensão (estático) como:
public static ? ToArray<TSource>(this TSource source);
e retorna a matriz de um objeto se ele consiste em qualquer sequência de elementos? E se sim, o que seria?
estar?
explicação
Eu pensei sobre as seguintes declarações:
public static TElement[] ToArray<TElement>(this IEnumerable<TElement> source);
public static ? ToArray<TSource>(this IEnumerable source);
Mas eu não posso presumir que uma classe desconhecida deve ter implementadoIEnumerable<T>
ouIEnumerable
. Eu não posso nem definir o?
no caso, é apenasIEnumerable
que está fora da definição genérica.
E eu também pensei sobre oArray
classe:
public static Array ToArray<TSource>(this TSource source);
Mas isso significa que o tipo de elemento era desconhecido em tempo de compilação.
Então, eu estou querendo saber é possível saber o tipo de elemento em tempo de compilação sem uma implementação de classeIEnumerable<T>
?