Covariance and ContraVariance can be hard to understand.
This short article gives you a very good basis: http://www.codeguru.com/columns/vb/article.php/c17635