Nie uczestniczyłem w PDC 2008, ale usłyszałem wiadomości, że C # 4.0 ma obsługiwać kowariancję i kontrwariancję rodzajową. Oznacza to, że List<string>
można przypisać do List<object>
. Jak to możliwe?
W książce Jona Skeeta C # in Depth wyjaśniono, dlaczego typy generyczne języka C # nie obsługują kowariancji i kontrawariancji. Służy głównie do pisania bezpiecznego kodu. Teraz zmieniono C # 4.0, aby je obsługiwał. Czy przyniesie chaos?
Czy ktoś zna szczegóły dotyczące języka C # 4.0, może udzielić wyjaśnienia?