You can combine object initializers with constructors to initialize types if necessary. Take for example a class defined as such:
public class Book {
public string Title { get; set; }
public string Author { get; set; }
public Book(int id) {
//do things
}
// the rest of class definition
}
var someBook = new Book(16) { Title = "Don Quixote", Author = "Miguel de Cervantes" }
This will first instantiate a Book
with the Book(int)
constructor, then set each property in the initializer. It is equivalent to:
var someBook = new Book(16);
someBook.Title = "Don Quixote";
someBook.Author = "Miguel de Cervantes";