Так как доступны классы С# 4.0, Tuple
. Почему Tuple
с тремя элементами не является подклассом Tuple
с двумя элементами?
Это может быть полезно при определении операции First : Tuple<T1,T2> -> T1
, которая будет работать для любого кортежа, независимо от количества дополнительных элементов.
Кроме того, поскольку элементы кортежа доступны только для чтения, почему Tuple<T1,T2>
не ковариант? (Например, a ITuple<Foo,Bar>
является также ITuple<SuperFoo,SuperBar>
)