Si tengo una firma de método como
public string myMethod<T>( ... )
¿Cómo puedo, dentro del método, obtener el nombre del tipo que se proporcionó como argumento de tipo? Me gustaría hacer algo similar a typeof(T).FullName
, pero eso realmente funciona ...
typeof(T).FullName
debería funcionar. ¿Qué está pasando en su lugar?Respuestas:
Tu código debería funcionar.
typeof(T).FullName
es perfectamente válido. Este es un programa completamente compilable y funcional:Ejecutando las impresiones anteriores (como se esperaba):
fuente
<int?>
" Si es así, funciona, pero obtienesSystem.Nullable<int>
(en la sintaxis del nombre completo), que es lo que esperarías ...nameof(T)
ytypeof(T).Name
haría lo mismo. Resulta quenameof(T)
solo vuelveT
.typeof(T).Name
ytypeof(T).FullName
están trabajando para mí. Obtengo el tipo pasado como argumento.fuente
Suponiendo que tenga alguna instancia de una T disponible, no es diferente a cualquier otro tipo.
fuente