С# 7.0 ValueTuples против анонимных типов

Глядя на новый С# 7.0 ValueTuples, мне интересно, полностью ли они заменит Anonymous Types. Я понимаю, что ValueTuples являются структурами и поэтому ведут себя немного иначе, чем Anonymous Types, которые являются классами. Однако я не вижу прецедента, в котором я бы предпочел использовать Anonymous Type над a ValueTuple.

Существуют ли какие-либо варианты использования, когда использование Anonymous Type все равно будет полезно использовать ValueTuples в С# 7.0?

Ответы

Ответ 1

Анонимные типы неизменяемы, кортежи - нет. Это отражается в том, что анонимные типы выставляют свойства, кортежи выставляют поля. Связывание данных почти всегда требует свойств.

Множество существующих кодов работает только со ссылочными типами, а не с типами значений. Что особенно важно, это прогнозы в Entity Framework: прогнозы для типов значений просто не реализованы.