I studied Java for a long time and am well acquainted with the operation of generic types in the language : I know there are only at compile time , suffering type erasure at the end of it ( so that at runtime this information is not available ) and have some notion of the difficulties when applying polymorphism on generic types .
Now I am learning C # , and I noticed that although this language use similar notation ( Type ) semantics does not seem the same . For example , to see that question did the C # runtime stores the information of the generic types instead of discarding it , unlike Java, is that correct? Also, I have never seen an example in C # that utilizes " jokers " ( wildcards ) and type < ? extends TipoGenerico > . This is possible ( or even necessary ) in that language ?
Finally , C # supports individual methods ( not just classes ) generics ? If yes , what is the equivalent syntax of this construction in Java :
public <T> void method (T parameter1 , parameter2 <T> List ) {
If there are any additional details that deserves emphasis , or maybe some reference material to learn more , will also be welcome.