Задать вопрос
@laravel_creative_3103

В чем разница присвоение через точечную запись от инициализатора объекта? Могут ли они быть друг друга взаимозаменяемы?

Максимально странный вопрос, но хотел бы уточнить, в чем разница, если я создам Класс, в котором определены поля:
class Person
    {
        public int Age { get; set; }
        public string Name { get; set; }
    }


В чем разница, если я буду использовать инициализатор объекта;
Person person = new Person() { Name = "Max", Age = 25 };

От, если бы я использовал точечную запись и инициализировал бы таким образом:
Person person = new Person();
person.Name = "Max";
person.Age = 25;


Можно ли считать, что это действие было одним и тем же, просто подход разный?
Понятно, что первый вариант - выполняет инициализация объекта по умолчанию, но возможно ли теоритически в реальном проекте применять второй вариант?
  • Вопрос задан
  • 45 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Можно ли считать, что это действие было одним и тем же, просто подход разный?

Да. Это одно и то же, тк компилятор первое превращает во второе. Это описано в стандарте и докуентации.

возможно ли теоритически в реальном проекте применять второй вариант?

Можно, но зачем?
+ Этот вариант будет работать только с set. А вот если будут использоваться новомодные фичи типа init и required - ты сможешь инициализировать только первым способом.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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