English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C#3.0 (.NET 3.5) ввелСинтаксис инициализации объектаЭто новый метод инициализации класса или объекта集合. Инициализация объекта позволяет присваивать значения полям или свойствам при создании объекта, не вызывая конструктор.
public class Student { public int StudentID { get; set; } public string StudentName { get; set; } public int Age { get; set; } public string Address { get; set; } } class Program { static void Main(string[] args) { Student std = new Student() { StudentID = 1, StudentName = "Bill", Age = 20, Address = "New York" }; } }
В примере выше, класс Student был определен без использования конструктора. В методе Main() мы создали объект Student и одновременно присвоили значения всем или некоторым свойствам в фигурных скобках. Это называется синтаксисом инициализации объекта.
Компилятор переведет приведенные выше инициализаторы в следующий вид.
Student __student = new Student(); __student.StudentID = 1; __student.StudentName = "Bill"; __student.Age = 20; __student.StandardID = 10; __student.Address = "Test"; Student std = __student;
Вы можете использовать грамматiku инициализации множества так же, как и объекты класса.
var student1 = new Student() { StudentID = 1, StudentName = "John" }; var student2 = new Student() { StudentID = 2, StudentName = "Steve" }; var student3 = new Student() { StudentID = 3, StudentName = "Bill" }; var student4 = new Student() { StudentID = 3, StudentName = "Bill" }; var student5 = new Student() { StudentID = 5, StudentName = "Ron" }; IList<Student> studentList = new List<Student>() { student1 , student2 , student3 , student4 , student5 };
Вы также можете одновременно инициализировать множество и объект.
IList<Student> studentList = new List<Student>() { new Student() { StudentID = 1, StudentName = "John" }, new Student() { StudentID = 2, StudentName = "Steve"} , new Student() { StudentID = 3, StudentName = "Bill"} , new Student() { StudentID = 3, StudentName = "Bill"} , new Student() { StudentID = 4, StudentName = "Ram" } , new Student() { StudentID = 5, StudentName = "Ron" } };
Вы также можете определить NULL в качестве элемента:
IList<Student> studentList = new List<Student>() { new Student() { StudentID = 1, StudentName = "John" }, null };
Синтаксис инициализатора делает код более читаемым и удобным для добавления элементов в коллекцию.
Это очень полезно в многопоточности.