Se eu tiver uma assinatura de método como
public string myMethod<T>( ... )
Como posso, dentro do método, obter o nome do tipo que foi dado como argumento de tipo? Eu gostaria de fazer algo semelhante a typeof(T).FullName
, mas isso realmente funciona ...
typeof(T).FullName
deve funcionar. O que está acontecendo em vez disso?Respostas:
Seu código deve funcionar.
typeof(T).FullName
é perfeitamente válido. Este é um programa totalmente compilado e funcional:Executando as impressões acima (como esperado):
fonte
<int?>
" Se sim, funciona, mas você obtémSystem.Nullable<int>
(na sintaxe do nome completo), que é o que você esperaria ...nameof(T)
etypeof(T).Name
faria a mesma coisa. Acontece quenameof(T)
apenas retornaT
.typeof(T).Name
etypeof(T).FullName
estão trabalhando para mim. Recebo o tipo passado como um argumento.fonte
Supondo que você tenha alguma instância de um T disponível, não é diferente de qualquer outro tipo.
fonte