Я большой поклонник .NET 4.0 Классы Tuple.
Все элементы в кортежах неизменяемы. Очевидно, что это полезно (наиболее очевидно, когда Tuples используются для представления специального значения ValueType, для которого нет объявления).
Тем не менее, у меня есть некоторые варианты использования, когда я мог видеть преимущества для элементов Tuple, имеющих сеттеры (за исключением параметра TRest
Type в Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>
). Учитывая, что у меня есть доступ к источнику и статья Мэтта Эллиса о "Building Tuple" , похоже, было бы довольно просто реализовать такую MutableTuple<T1,T2,TEtc>
.
Было ясно, что Microsoft решила сделать Tuple
неизменной. Есть ли причина, по которой я упускаю из виду, что мне не следует создавать альтернативную реализацию с изменяемыми элементами, отличными от tuple?