Анонимные методы set свойства типа

Почему анонимные типы не имеют методов set свойства?

var a = new { Text = "Hello" };
a.Text = "World"; //error
15
задан CSJ 30 September 2014 в 16:35
поделиться

1 ответ

Анонимные типы неизменяемы изначально.

Анонимные типы предназначены для хранения значений, и тип, представляющий значение, не должен быть изменяемым.

Кроме того, это сделало бы их ненадежными в словаре, так как хэш-код мог измениться после создания.
Многие методы LINQ используют словари, и, особенно с отложенным вычислением, LINQ с изменяемыми типами может привести к незаметным загадочным ошибкам.

33
ответ дан 1 December 2019 в 01:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: