第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