0

컴파일하고 내가 예상했던 것보다 내 생성자 및로드 이벤트가 다른 순서에서 발사되는 것을 발견하고, 컴파일 오류없이 윈도우와 리눅스 (모노)에서 실행할 수있을만큼 내 델파이 프리즘 프로그램을 작성 가졌어요. 나는 델파이 .dpr 파일과 같은 프로젝트 파일에 나열된 순서대로 파일이 실행될 것이라고 생각했다. .dpr 파일에 관해서는 델파이 프리즘과 비슷한 파일이 있습니다. 나는 program.pas 파일과 속성을 들여다 보았다. 나에게 힌트 나 단서를주기 위해 아무 것도 보지 못했다.무엇 델파이 프리즘에서 컴파일시 또는 소스 파일의 실행 순서를 결정한다?

당신은 어떻게 프로젝트 파일은 델파이 프리즘에서 마우스 오른쪽 버튼을 순서대로 실행 얻을 있는지 확인 할 ?

답변

1

.NET은 클래스가 프로그램 파일에 나열된 순서에 대해 알고하지 않습니다. 그것은 단지 수업을 본다. 이 규칙 생각할 수있는 정상적인 상황

:

정적 (클래스) 생성자는 처음으로이 클래스에서 호출 인스턴스 .ctor 또는 다른 정적 (클래스) 메소드 직전에 실행됩니다

언제나 사실이 아니지만 (일 수 있습니다. 일찍 호출되었지만 나중에는 호출되지 않습니다), 이는 대부분의 경우에 적용되는 좋은 방법입니다.

정적 클래스 초기화에 대한 특정 순서를 보장하기 위해 다음을 사용합니다. Initialize() 메서드가있는 정적 클래스가 하나 있습니다. 이 메소드는 내 프로그램의 Main() 메소드에서 제일 먼저 호출하는 메소드이다. 이 메소드에서는 다른 클래스의 Initialize-Methods를 필요한 순서로 호출합니다. 이렇게하면 초기화 코드가 실행됩니다.

2

델파이 프리즘은 파일이 프로젝트에 정의 된 순서로 컴파일합니다. 그러나 초기화 섹션이 없으므로 파일의 순서에 따라 달라지는 내용이 없어야합니다. 다른 질문에 대해서는

. Program.pas는 기본적으로 엔트리 포인트를 포함하고 있습니다.이 메소드는 "Main"이라는 메소드입니다. 이것을 기본 시작/끝으로 볼 수 있습니다.