12
Почему у анонимных типов нет объектов недвижимости?Анонимные определители недвижимости
var a = new { Text = "Hello" };
a.Text = "World"; //error
Почему у анонимных типов нет объектов недвижимости?Анонимные определители недвижимости
var a = new { Text = "Hello" };
a.Text = "World"; //error
Анонимные типы неизменяемы по дизайну.
Анонимные типы предназначены для хранения значений, а тип, который представляет значение, не должен изменяться.
Кроме того, это сделает их ненадежными в словаре, поскольку хэш-код может измениться после создания.
Многие методы LINQ используют словари, и, особенно с задержкой оценки, LINQ с изменяемыми типами может привести к тонким загадочным ошибкам.
Это было быстро :-) Thnx – Marko
Обратите внимание, что анонимные типы в VB допускают частичную мутацию. В VB вы можете указать, какие части анонимного типа изменяемы; сгенерированный код не будет использовать изменяемые биты как часть хеш-кода/равенства, поэтому вы не получите проблему «потерянный в словаре». Мы решили не реализовывать эти расширения в C#. –
Я этого не знал; Благодарю. – SLaks