English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C#3.0 (NET 3.5) a introduitSyntaxe de l'initialiseur d'objetC'est une nouvelle méthode pour initialiser une classe ou un objet de collection. Le programme d'initialisation d'objet permet d'affecter des valeurs aux champs ou aux propriétés lors de la création de l'objet, sans appeler le constructeur.
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" }; } }
Dans cet exemple, la classe Student est définie sans constructeur. Dans la méthode Main(), nous créons un objet Student et assignons des valeurs à tous ou certains des attributs entre accolades. Cela s'appelle la syntaxe de l'initialiseur d'objet.
Le compilateur compile le programme d'initialisation suivant :
Student __student = new Student(); __student.StudentID = 1; __student.StudentName = "Bill"; __student.Age = 20; __student.StandardID = 10; __student.Address = "Test"; Student std = __student;
Vous pouvez utiliser la syntaxe de l'initialiseur de collection pour initialiser une collection de la même manière qu'un objet de classe.
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 };
Vous pouvez également initialiser à la fois une collection et un objet.
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" } };
Vous pouvez également spécifier null comme élément :
IList<Student> studentList = new List<Student>() { new Student() { StudentID = 1, StudentName = "John"} , null };
La syntaxe d'initialisation rend le code plus lisible et facile à ajouter des éléments à un ensemble.
Très utile dans les multithreads.