第九章 Caché 函数大全 $CLASSNAME 函数

   日期:2020-08-31     浏览:143    评论:0    
核心提示:文章目录 第九章 Caché 函数大全 $CLASSNAME 函数大纲参数描述示例 第九章 Caché 函数大全 $CLASSNAME 函数返回类的名称。大纲$CLASSNAME(n)参数n 可选-对类实例的对象引用(OREF)。如果省略,则返回当前类的类名。描述$CLASSNAME返回类的名称。通常,它接受对象引用(OREF)并返回相应的类名。不带参数的$CLASSNAME返回当前类的名称。$CLASSNAME始终返回完整的类名(例如,%SQL.Statement),而不是省略包名的

文章目录

  • 第九章 Caché 函数大全 $CLASSNAME 函数
  • 大纲
    • 参数
  • 描述
  • 示例

第九章 Caché 函数大全 $CLASSNAME 函数

返回类的名称。

大纲

$CLASSNAME(n)

参数

  • n 可选-对类实例的对象引用(OREF)。如果省略,则返回当前类的类名。

描述

$CLASSNAME返回类的名称。通常,它接受对象引用(OREF)并返回相应的类名。不带参数的$CLASSNAME返回当前类的名称。$CLASSNAME始终返回完整的类名(例如,%SQL.Statement),而不是省略包名的类名的简短版本(例如,STATEMENT)。

$CLASSNAME在功能上等同于%Library.Base超类的%ClassName(1)方法。$CLASSNAME函数在返回完整类名方面比%ClassName(1)方法提供更好的性能。要返回类名称的简短版本,可以使用%ClassName()%ClassName(0)

示例

下面的示例创建一个类的实例。$CLASSNAME获取实例OREF并返回相应的类名:

/// d ##class(PHA.TEST.Function).CLASSNAME()
ClassMethod CLASSNAME()
{
	SET dynoref = ##class(%SQL.Statement).%New()
	WRITE "instance class name: ",$CLASSNAME(dynoref)
}
DHC-APP>d ##class(PHA.TEST.Function).CLASSNAME()
instance class name: %SQL.Statement

在下面的示例中,不带参数的$CLASSNAME返回当前类上下文的类名。在本例中,它是DocBook.Utils类。这与$this特殊变量中包含的类名相同:

/// d ##class(PHA.TEST.Function).CLASSNAME1()
ClassMethod CLASSNAME1()
{
	WRITE "class context: ",$CLASSNAME(),!
	WRITE "class context: ",$THIS
}
DHC-APP>d ##class(PHA.TEST.Function).CLASSNAME1()
class context: PHA.TEST.Function
class context: PHA.TEST.Function

以下示例显示$CLASSNAME函数和%ClassName(1)方法返回相同的值。它还显示了使用%ClassName()方法(不带参数或带0参数)返回类名称的简短版本:

/// d ##class(PHA.TEST.Function).CLASSNAME2()
ClassMethod CLASSNAME2()
{
CurrentClass
	WRITE "current full class name: ",$CLASSNAME(),!
	WRITE "current full class name: ",..%ClassName(1),!
	WRITE "current short class name: ",..%ClassName(0),!
	WRITE "current short class name: ",..%ClassName(),!!
ClassInstance
	SET x = ##class(%SQL.Statement).%New()
	WRITE "oref full class name: ",$CLASSNAME(x),!
	WRITE "oref full class name: ",x.%ClassName(1),!
	WRITE "oref short class name: ",x.%ClassName(0),!
	WRITE "oref short class name: ",x.%ClassName()
}
DHC-APP>d ##class(PHA.TEST.Function).CLASSNAME2()
current full class name: PHA.TEST.Function
current full class name: PHA.TEST.Function
current short class name: Function
current short class name: Function
 
oref full class name: %SQL.Statement
oref full class name: %SQL.Statement
oref short class name: Statement
oref short class name: Statement
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服