從C#背景發送我想學Delphi。 我在我的表單中遇到訪問衝突,我按下了一個創建TLight實例的按鈕。 無論我嘗試訪問我的私人FState,我都會遇到訪問衝突。初始化私人變量創建AccessViolation
我錯過了什麼?
unit Light;
interface
uses sysUtils;
type
TLightStates = (Red, Orange, Green);
type
TLight = class
private
Fstate : TLightStates;
published
Constructor Create(); overload;
procedure SetState(const Value: TLightStates);
Property State : TLightStates
read Fstate
write SetState;
end;
implementation
{ TLight }
constructor TLight.Create;
begin
Fstate := TLightStates.Red;
end;
procedure TLight.SetState(const Value: TLightStates);
begin
Fstate := Value;
end;
end.
啊哈,我沒有初始化它在C#枚舉不需要創建。我壓倒一切的原因是因爲我在教程中看到了這種情況;)我現在看到這是毫無意義的。 Thx – 2010-02-01 12:35:35
@Ritsaert - 你其實意味着重寫而不是重載;覆蓋會導致應用於非虛擬方法時的語法錯誤;超載可以應用於任何方法,這裏只是沒有意義。 – kludg 2010-02-01 13:03:18
>我沒有初始化它,因爲在C#中不需要創建枚舉。 delphi枚舉不需要被實例化。在C#中,您可以聲明一個對象,以便它自動創建(並銷燬)。令人遺憾的是,德爾福沒有這個。 – 2010-02-01 13:34:50