No covariance for value type
For a while now I’ve been wondering why C#’s support for covariance does not cover value types, both in normal array covariance and covariance in the generic parameter introduced in C# 4: 1: void Main() 2: { 3: int i = 0; 4: string str = "hello world"; 5: 6: TestMethod(i); // legal 7: TestMethod(str); …