2011-01-18 77 views
3

如何創建/定義powerbuilder類的屬性?我運行PowerBuilder 9,我一直在使用公共變量,如屬性,但我想知道如何爲對象創建/定義PowerBuilder屬性。Powerbuilder - 如何創建類屬性

我的猜測是,在PB 9中,變量/屬性在使用和實現上非常相似。

+1

你能說清楚你在「屬性」中尋找什麼,如果你通過「公共變量」來表示公共訪問實例變量,它們又是如何失效。如果我們理解你的追求,我們更有可能提供幫助。 (至少*我對這個概念很模糊。) – Terry 2011-01-19 03:08:00

回答

3

你的意思是, 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的代碼是這樣的:

Powerbuilder accessor/mutator code

(或來源:

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