Generic variance is the ability to assign a generic interface or delegate type to the same type with another parameter, for example, assign IEnumerable<String> to IEnumerable<Object>. Generic variance has to be defined on the generic parameter type that supports them.
I didn't attend PDC 2008, but I heard some news that C# 4.0 is announced to support Generic covariance and contra-variance. That …
c# c#-4.0 covariance contravariance generic-variance