第9章Caché関数コレクション$ CLASSNAME関数

記事ディレクトリ

第9章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()、クラス名の短いバージョンを返すuse メソッド(パラメーターなしまたはパラメーターなし)も示しています。

/// 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

おすすめ

転載: blog.csdn.net/yaoxin521123/article/details/108302490