Powerbuilder - Как создать свойства класса

Как мне создать / определить свойства для класса powerbuilder? Я запускаю PowerBuilder 9 и использую общедоступные переменные как свойства, но я хочу знать, как создавать / определять свойства PowerBuilder для объекта.

Я предполагаю, что в PB 9 переменные / свойства очень похожи по своему использованию и реализации.


person contactmatt    schedule 18.01.2011    source источник
comment
Можете ли вы уточнить, что вы ищете в свойствах, и, если под общедоступными переменными вы имеете в виду переменные экземпляра с открытым доступом, то как они не справляются. Если мы поймем, что вам нужно, мы с большей вероятностью сможем вам помочь. (По крайней мере, я не уверен в этой концепции.)   -  person Terry    schedule 19.01.2011


Ответы (2)


Вы имеете в виду свойства таким образом, например, как C # или PHP определяет их как оболочки для методов доступа / мутатора - что-то вроде этого (в C #)?

class TimePeriod
{
    private double seconds;

    public double Hours
    {
        get { return seconds / 3600; }
        set { seconds = value * 3600; }
    }
}

РЕДАКТИРОВАТЬ: как отметил Хью Брэкетт, это может быть выполняется с помощью недокументированного ключевого слова INDIRECT.

Классический (задокументированный) способ сделать это - написать отдельные методы доступа и мутатора. В приведенном выше примере вы должны написать такой код Powerbuilder:

Код доступа / мутатора 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

)

person Colin Pickard    schedule 19.01.2011

Вы можете создавать свойства с недокументированным ключевым словом indirect. Вот статья, в которой объясняется, как использовать косвенное ключевое слово в PowerBuilder. использование недокументированных функций применяется.

person Hugh Brackett    schedule 19.01.2011
comment
Спасибо, я никогда не знал, что такое существует! - person Colin Pickard; 21.01.2011