기본 이니셜 라이저가 설정되어 있고 객체를 만들 때 익명 객체를 정의하면. 기본값이 생략되었거나 이전에 실행 되었습니까? 내가 알고 싶은 이유는 아래의 경우에 실행되면 기본값으로 만들어진 List 객체가 즉시 삭제되어 불필요한 쓰레기를 생성하기 때문입니다. 귀하의 예제 코드에서anonymous는 기본값 재정의를 초기화합니까, 아니면 이후에 실행합니까?
class ArrangedPanel : RectElement
{
public List<RectElement> arrangedChildren = new List<RectElement>();
public int Padding = 2;
}
//Somewhere else
new ArrangedPanel()
{
Padding = 5,
arrangedChildren = new List<RectElement>()
{
new ButtonToggle(),
new ButtonToggle()
}
}
클래스 *의 모든 필드 초기화 프로그램과 기본 클래스 *는 생성자 본문이 입력되기 전에 실행됩니다. 일이 일어나는 순서는 다음과 같습니다. 필드 이니셜 라이저는 이니셜 라이저가있는 마지막 기본 클래스가 완료 될 때까지 기본 클래스에 대해 파생 클래스의 텍스트 순서로 실행됩니다. 즉, 파생 된에서 기본 *로 이동합니다. 그런 다음 생성자 본문이 실행되며 기본 생성자부터 시작하여 파생 생성자로 다시 이동합니다. –