第三十六章 Objects - 有用的 ObjectScript 函数
有用的 ObjectScript
函数
ObjectScript
提供以下与对象类一起使用的函数:
-
$CLASSMETHOD
使能够运行类方法,以类名和方法名的形式给出。例如:
TESTNAMESPACE>set class="Sample.Person"
TESTNAMESPACE>set obj=$CLASSMETHOD(class,"%OpenId",1)
TESTNAMESPACE>w obj.Name
Van De Griek,Charlotte M.
当需要编写执行类方法的通用代码,但事先不知道类名(甚至方法名)时,此函数非常有用。例如:
//read name of class from imported document
Set class=$list(headerElement,1)
// create header object
Set headerObj=$classmethod(class,"%New")
其他功能在类似场景中也很有用。
-
$METHOD
使能够在给定实例和方法名称的情况下运行实例方法。例如:
TESTNAMESPACE>set obj=##class(Sample.Person).%OpenId(1)
TESTNAMESPACE>do $METHOD(obj,"PrintPerson")
Name: Van De Griek,Charlotte M.
-
$PROPERTY
获取或设置给定实例的给定属性的值。例如:
TESTNAMESPACE>set obj=##class(Sample.Person).%OpenId(2)
TESTNAMESPACE>write $property(obj,"Name")
Edison,Patrick J.
-
$PARAMETER
在给定实例的情况下获取给定类参数的值。例如:
TESTNAMESPACE>set obj=##class(Sample.Person).%OpenId(2)
TESTNAMESPACE>write $parameter(obj,"EXTENTQUERYSPEC")
Name,SSN,Home.City,Home.State
-
$CLASSNAME
返回给定实例的类名。例如:
TESTNAMESPACE>set obj=##class(Sample.Person).%OpenId(1)
TESTNAMESPACE>write $CLASSNAME(obj)
Sample.Person
如果没有参数,该函数返回当前上下文的类名。这在实例方法中很有用。
网友评论