Eric Lippert (CLR ninja at Microsoft) has been writing a facination series of blog posts about the current and (possible) future support for these very concepts in an upcoming release of the CLR. I recommend the series AND the comments as excellent learning fodder.
http://blogs.msdn.com/ericlippert/archive/tags/Covariance+and+Contravariance/default.aspx -- "He uses statistics as a drunken man uses lamp-posts… for support rather than illumination." Andrew Lang Marc C. Brooks http://musingmarc.blogspot.com