C# Language
객체 이니셜 라이저
수색…
통사론
- SomeClass sc = 새로운 SomeClass {Property1 = value1, Property2 = value2, ...};
- SomeClass sc = 새로운 SomeClass (param1, param2, ...) {Property1 = value1, Property2 = value2, ...}
비고
생성자 괄호는 인스턴스화되는 유형이 기본 (매개 변수없는) 생성자를 사용할 수있는 경우에만 생략 할 수 있습니다.
간단한 사용법
객체 이니셜 라이저는 객체를 만들고 즉시 몇 가지 속성을 설정해야하지만 사용할 수있는 생성자만으로는 충분하지 않을 때 편리합니다. 수업이 있다고 가정 해 보겠습니다.
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
// the rest of class definition
}
이니셜 라이저를 사용하여 클래스의 새 인스턴스를 초기화하려면 :
Book theBook = new Book { Title = "Don Quixote", Author = "Miguel de Cervantes" };
이것은
Book theBook = new Book();
theBook.Title = "Don Quixote";
theBook.Author = "Miguel de Cervantes";
익명 형식의 사용법
개체 이니셜 라이저는 컴파일러에서 생성 된 형식 인 익명 형식을 초기화하는 유일한 방법입니다.
var album = new { Band = "Beatles", Title = "Abbey Road" };
이러한 이유 때문에 객체 초기화 프로그램은 LINQ select 쿼리에서 널리 사용됩니다. 쿼리 된 객체의 원하는 부분을 지정하는 편리한 방법을 제공하기 때문에 LINQ select 쿼리에 널리 사용됩니다.
var albumTitles = from a in albums
select new
{
Title = a.Title,
Artist = a.Band
};
기본이 아닌 생성자와 함께 사용
필요한 경우 객체 초기화 프로그램을 생성자와 결합하여 유형을 초기화 할 수 있습니다. 예를 들어 다음과 같이 정의 된 클래스를 가져옵니다.
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" }
그러면 Book(int)
생성자로 Book
을 인스턴스화 한 다음 이니셜 라이저의 각 속성을 설정합니다. 그것은 다음과 같습니다 :
var someBook = new Book(16);
someBook.Title = "Don Quixote";
someBook.Author = "Miguel de Cervantes";
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow