Всем привет. Начал изучать анонимные типы в c#.
Автор приводит пример синтаксиса Анонимного типа
var instance=new{Name"Alex", Age=27};
и предлагает последовательно - шаг за шагом добавить на эту строку дополнительные элементы синтаксиса - что бы данная строк стала более узнаваемая "читаемая" для нас (напоминаю- автор это делает т.к пример и весь курс - учебный) т.е превратив выше приведенную строку в
var instance=new MyClass(){Name"Alex", Age=27};
- говоря, что мы добавили имя конструктора по умолчанию и круглые скобки для приема аргументов конструктора, и тут же демонстрируеь, что добавляя это - студия предлагает сгенерировать нам свойства для Age и для Name в классе MyClass(класс он создал сам-опять же для примера, но сказал, что в анонимных типах при генерации свойств класс такжн создаетс автоматически)
В классе сгенерировались авто-реализуемые свойства
- но автор сказал, что они должны быть только для чтения -т.е в (ну в данномслучае посто нужно убрать set - ведь студия генерировала свойства как для обычных полей класса когда мы дописала имя конструктора по умолчаню после ключевого слова new) .
И это подводит меня к вопросу №3(вопросы №1 и 2 представлены ниже) Если авто генерируемые , авто-реализуемые свойства в также автоматически созданном классе(назовем его MyClass) -только для чтения, то каким образом в блоке инициализатора на строке
var instance=new{Name"Alex", Age=27};
- мы вообще можем присваивать этим полям значения ?
Вот скриншот первого примера, в котором меня интересует комментарий: - в котором у меня и возникают все эти вопросы.
вопрсос №1 т.е компилятор каждый раз создает новое имя для анонимного типа, который в свою очередь является ссылочным типом ?
вопрос№2 т.е приложение не может обращаться ссылке(т.к тип ссылочный) к новому имени созданному
Далее автор говорит, что компилятором.
Вопрос№3 - представлен вначале.