[英]Delphi - Accessing Object Instance Data from Another Object
我有我的主要形式。 Form_Main
它創建兩個類的兩個實例。
Candle_Data : TCandle_Data;
Indicator_2700 : TIndicator_2700;
為了使 Indicator_2700 正確計算其值,它必須能夠從其方法之一訪問對象 Candle_Data 中的蠟燭數據。 那么 Indicator_2700 如何訪問 Candle_Data 內部的數據呢? Form_Main 是否必須在構造函數時將其作為參數傳遞?
兩個 Class 聲明都在它們自己的單元文件中。
TIndicator_2700
可以具有將其鏈接到與其自己的實例相關的TCandle_Data
實例的屬性,或者您應該將其作為參數提供給需要訪問數據的方法。
您當然可以將TCandle_Data
實例傳遞給Indicator_2700
的構造函數,並在結果實例中存儲一個引用,直到您需要它為止。
您可以使用以下任何一種(非詳盡的)方法:
我們確實沒有足夠的信息來建議您哪個是最好的,但起點始終是首選參數和局部變量而不是全局 state。
兩個 class 聲明都在它們自己的單元文件中。
這表明兩者都與對方無關。 但是你仍然希望一個人了解另一個人。 這聽起來像是一個小小的設計混淆,但事實並非如此。
有多種解決方案,這里是其中的三個,每個都有自己的目的:
Transport
單元中的TCar
和TAirplane
),Transport
使用單元Fuel
: TCar
需要TDiesel
,但TDiesel
不需要TCar
)。 這只能單向工作。 Delphi 防止以兩種方式使用編譯器錯誤:“循環單元引用‘燃料’”。 唯一的解決方法是在實現部分使用第二個單元,但這通常被認為是一個很大的 nono。TCar
、 TAirplane
和TFuel
都使用THorse
,但TFood
( TFuel
) 僅由THorse
和TPerson
使用。至於如何將兩個類鏈接在一起,請參閱已經給出的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.