Powerbuilder:我一直搞不清楚哪些类型需要用create创建?有的类型好象申明后就可以直接用.

http://www.cndw.com/tech/data/200602158731.asp

1. CREATE

CREATE语句生成对象实例变量,在生成以后,可以用点操作符引用对象的成员。CREATE语句返回一个可在变量中保存的对象实例句柄。CREATE语句有两种语法格式:

objectvariable = CREATE objecttype

objectvariable = CREATE USING objecttypestring

objectvariable 持有该对象实例,objecttype代表对象类型,objecttypestring是保存需要创建的对象类型名称的字符串。

使用CREATE语句可以创建包括标准类用户对象在内的类用户对象,例如mailSession或者Transaction对象。不过,系统已经为标准用户对象Message、Error、Transaction、DynamicDescriptionArea、DynamicStagingArea提供了一个实例, 如果需要多于一个的的实例,可以使用CREATE语句创立更多的实例。

标准数据类型和结构体不用CREATE创立。当对象的AutoInstantiate属性被设置为TRUE的时候,不需要使用CREATE语句。可视对象实例不使用CREATE语句创立,而使用OPEN函数。使用CREATE语句的第二种语法格式可以在应用中动态地选择对象类型,并创建它的实例。通常在使用继承对象实例初始化祖先对象的时候,使用此CREATE语句格式.

使用CREATE语句创建实例对象,在使用完该对象之后,要用DESTROY命令销毁对象实例。

例子:

torus obj1,obj2

torus_ancestor obj_ancestor

obj1 = CREATE torus

obj2 = CREATE torus

obj_ancestor = CREATE USING obj1

2. DESTROY

DESTROY语句释放由CREATE创建的实例,释放之后该对象实例不能再被引用。DESTROY语句的语法格式为:

DESTROY OBJName

需要注意的是,在某些情况之下,用户可能需要销毁自己并未创建的Dwobject或者OLEObject对象实例。其原因是:在引用到DataWindow、DWojbect或者OLEObject对象的成员函数或者属性的时候,POWER BUILDER会动态地创立和释放响应对象实例,但是如果用户自己建立了对嵌入对象的引用,而不是调用其本身的成员函数和属性的话,等于重载了内部动态对象,因此用户需要负责释放该对象。

//以下我的问题:

a. 比如一个对象是动态创建的,但是用在了closewithreturn中,那destroy要怎么写?我写了destroy会出错。

b. 垃圾回收谁在用?怎么用?

你可能感兴趣的:(PowerBuilder)