Practice · 1 of 3
Variance legality
CHALLENGE
Difficulty: advanced+25 XP
Implement static string Variance(IEnumerable<object> xs) returning "ok", and prove contravariance: implement static Action<string> AsObjectAction(Action<object> a) => a; (assigning Action<object> to Action<string> is legal because T is contravariant in Action<in T>). Also implement static string First(IReadOnlyList<string> list) returning list[0] — IReadOnlyList<out T> is covariant.
Press Submit to check your solution.
Back to lesson: Practice: Generic machinery