1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Quais as diferenças entre Tipos Genéricos em C# e em Java?

Discussion in 'Technology' started by mgibsonbr, Oct 8, 2018.

  1. mgibsonbr

    mgibsonbr Guest

    Eu estudei Java há bastante tempo e estou bem familiarizado com o funcionamento de tipos genéricos nessa linguagem: sei que só existem em tempo de compilação, que sofrem type erasure ao final da mesma (de modo que no tempo de execução essas informações não estão disponíveis), e tenho uma certa noção das dificuldades ao se aplicar polimorfismo em tipos genéricos.

    Agora estou aprendendo C#, e reparei que embora essa linguagem use notação semelhante (Tipo<TipoGenerico>) a semântica não parece ser a mesma. Por exemplo, ao ver essa pergunta entendi que o runtime do C# guarda a informação dos tipos genéricos em vez de descartá-la, diferentemente do Java, isso está correto? Além disso, nunca vi um exemplo em C# que utilizasse "coringas" (wildcards) como Tipo<? extends TipoGenerico>. Isso é possível (ou mesmo necessário) nessa linguagem?

    Por fim, C# suporta métodos individuais (e não somente classes) genéricos? Se sim, qual a sintaxe equivalente dessa construção em Java:

    public <T> void metodo(T parametro1, List<T> parametro2) {


    Se houver algum detalhe adicional que mereça destaque, ou talvez algum material de referência para aprender mais, também será bem-vindo.

    Login To add answer/comment
     

Share This Page