如何創建/定義powerbuilder類的屬性?我運行PowerBuilder 9,我一直在使用公共變量,如屬性,但我想知道如何爲對象創建/定義PowerBuilder屬性。Powerbuilder - 如何創建類屬性
我的猜測是,在PB 9中,變量/屬性在使用和實現上非常相似。
如何創建/定義powerbuilder類的屬性?我運行PowerBuilder 9,我一直在使用公共變量,如屬性,但我想知道如何爲對象創建/定義PowerBuilder屬性。Powerbuilder - 如何創建類屬性
我的猜測是,在PB 9中,變量/屬性在使用和實現上非常相似。
你的意思是, C#或PHP將它們定義爲accessor/mutator methods的包裝 - 類似於(在C#中)?
class TimePeriod
{
private double seconds;
public double Hours
{
get { return seconds/3600; }
set { seconds = value * 3600; }
}
}
編輯:由於pointed out by Hugh Brackett,這可以通過使用無證INDIRECT
關鍵字來完成。
執行此操作的經典(記錄)方法是編寫單獨的存取器和增變器方法。對於上面的例子,你會寫一些PowerBuilder的代碼是這樣的:
(或來源:
global type uo_timeperiod from nonvisualobject
end type
global uo_timeperiod uo_timeperiod
type variables
private double id_seconds
end variables
forward prototypes
public function double of_get_hours()
public subroutine of_set_hours (double ad_seconds)
end prototypes
public function double of_get_hours();
return id_seconds/3600
end function
public subroutine of_set_hours (double ad_seconds);
id_seconds = ad_seconds * 3600
end subroutine
)
您可以使用無證indirect
關鍵字創建屬性。 這是article that explains how to use the indirect keyword in PowerBuilder 有關使用未記錄功能的正常注意事項適用。
謝謝,我從來不知道存在! – 2011-01-21 14:38:42
你能說清楚你在「屬性」中尋找什麼,如果你通過「公共變量」來表示公共訪問實例變量,它們又是如何失效。如果我們理解你的追求,我們更有可能提供幫助。 (至少*我對這個概念很模糊。) – Terry 2011-01-19 03:08:00