Scott Guthrie в своем блоге пишет о выходе March CTP Visual Studio и .Net Framework "Orcas" и о нововведениях в языке С#: автоматических свойствах, инициализаторах объектов и коллекций.
Что такое автоматические свойства? Вы пишите:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
Компилятор автоматически генерирует аксессоры get set и приватные поля для ваших свойств. Скотт пишет, что это будет делать именно компилятор, а не студия путем автогенерации кода.
Инициализаторы классов и коллекций представляют собой более вразумительную фичу, но выглядят весьма непривычно. Положим, нам надо создать экземпляр класса Person и задать значения его свойств. Сделать это можно через параметризированный конструктор, если он есть. Либо просто, присваявая значения:
Person person = new Person();
person.FirstName = "Scott";
person.LastName = "Guthrie";
person.Age = 32;
Все вы знаете, что с параметризированными конструкторами всегда беда. Их либо слишком мало, либо слишком много, и всегда не понятно, в каком состоянии окажется созданный таким конструктором экземпляр. А добавление нового свойства? Добавил свойство и полез переписывать 7 и 9 конструкторов :)
Теперь есть вот такая каонструкция:
Person person = new Person { FirstName="Scott", LastName="Guthrie", Age=32 };
Нравится?
То-же самое можно делать с коллекциями.
Listpeople = new List {
new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 },
new Person { FirstName = "Bill", LastName = "Gates", Age = 50 },
new Person { FirstName = "Susanne", LastName = "Guthrie", Age = 32 }
};
Комментариев нет:
Отправить комментарий