According to Microsoft, Generics are faster than casting (even in absence of boxing/unboxing).
Tony Northrup - co-author of MCTS 70-536: Application Development Foundation - states in the same book the following:
I haven’t been able to reproduce the
performance benefits of generics;
however, according to Microsoft,
generics are faster than using
casting. In practice, casting proved
to be several times faster than using
a generic. However, you probably won’t
notice performance differences in your
applications. (My tests over 100,000
iterations took only a few seconds.)
So you should still use generics
because they are type-safe.
Please note the argument is not about primitives. Microsoft states that Generics provide better performance than casting between reference types as well - but they do not. I tried that and using generics is slower than casting in this case (confirming Tony Northrup quote).