public에서implementation 앞에서 정의한 전역 변수와 차이
delphi에서 인코딩을 할 때 프로젝트에서 전역 변수를 자주 사용하기 때문에 전역 변수를 정확하게 사용하는 것이 특히 중요하다.본고는 주로public에서implementation 앞에서 정의한 전역 변수와 차이점을 소개한다.
1. 단원 파일 정의의 전역 변수
먼저 단원 파일을 첨부하고 코드에서 변수가 있는 위치를 보여 줍니다.단원 이름은 uni1입니다.pas
TForm1=Class(TForm)
Edit1 : TEdit;
Label1 : TLabel;
Button1 : TButton;
Button2 : TButton;
Button3 : Tbutton;
procedure Button1Click(Sender : TObject);
procedure Button2Click(Sender : TObject);
procedure Button3Click(Sender : TObject);
private
{Private declarations}
Name : String='Deen'; // ;
public
{Public declarations}
end;
Var
Form1 : TForm;
Name : String;// 。
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender : TObject);
var
Name : String; // ;
begin
Name := ' ';
Edit1.Text := Name;
end;
end.
2. 각 변수의 정의, 작용 범위와 사용
전역 변수: 클래스 밖에서 성명된 변수를 가리킨다. 보통 이런 변수는 전체 공사 내에서 유효하다. 즉, 전체 공사에서 클래스를 모두 사용할 수 있다.이 변수의 생존 주기는 공사가 창설될 때 유효하고 공사가 소각될 때 소각된다.
다른 단원 파일에서 직접 사용할 수 있으며, 인용된 단원의 창 이름을 추가할 필요가 없습니다.예를 들어 나는 한 창에서 전역 변수를 설명했는데 다음과 같다.
var
W_POS_BankForm: TW_POS_BankForm;
Test:string='dancy'; //
그러면 나는 바로 다른 창에서 사용할 수 있다. 다음과 같다.
ShowMessage(Test);
주:Test 앞에는 유닛과 같은 파일 이름을 추가할 수 있습니다.Test.
구성원 변수: 클래스에서 성명된 변수를 가리키며 이런 변수는 클래스에서 모두 사용할 수 있다.그 생명주기는 클래스가 생성될 때 유효하고 클래스가 소각될 때 소각됩니다.
다른 단원 파일에서 사용할 때 인용된 단원의 창 이름을 추가해야 합니다.
Form1.name; name 앞에 붙인 것은 창 이름입니다.
국부 변수: 방법 내부에서 성명된 변수를 가리키며 이런 변수는 방법 내부에서만 사용할 수 있다.그 생명주기도 방법 내부에서 유효하며 방법 호출이 끝난 후에 그 내부에 성명된 변수도 이에 따라 소각된다.
이 단원에서만 사용합니다.
3. 공공 변수와implementation 앞에서 정의된 전역 변수의 차이
구성원 변수를 사용하든 전역 변수를 사용하든 먼저 단원 파일에 사용해야 한다.
public에서 클래스 구성원을 정의하고,implementation에서 정의한 것이야말로 전역 변수 Public에서 정의한 것이며, 다른 단원 (Unit) 에서 이 단원의 이름을 인용합니다.implementation에서 인용한 것이야말로 진정한 전역 변수이다. 다른 단원에서 인용하면 바로 호출할 수 있고 단원의 이름을 붙이지 않아도 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 다중 스레드 공유 전역 변수의 우열1. 다중 스레드 공유 전역 변수 우선 함수에서 전역 변수를 수정한 상황을 회상해 봅시다. 하나의 함수에서 전역 변수를 수정할 때 글로벌을 사용하여 설명해야 하는지, 전역 변수의 실행 지향을 수정했는지 확인해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.