$CLASSNAME (ObjectScript)
構文
$CLASSNAME(oref)
引数
引数 | 説明 |
---|---|
oref | オプション — クラス・インスタンスへのオブジェクト参照 (OREF)。省略した場合は、現在のクラスの名前が返されます。 |
説明
$CLASSNAME はクラス名を返します。一般的には、オブジェクト参照 (OREF) を取得して、対応するクラス名を返します。引数なしの $CLASSNAME は、現在のクラスの名前を返します。$CLASSNAME は常に完全なクラス名 (%SQL.Statement など) を返し、パッケージ名を省略した短縮版のクラス名 (Statement など) は返しません。
$CLASSNAME は、機能的には %Library.BaseOpens in a new tab スーパークラスの %ClassName(1)Opens in a new tab メソッドと同等です。$CLASSNAME 関数は、完全なクラス名を返す点で %ClassName(1) よりもパフォーマンスが優れています。短縮版のクラス名を返すには、%ClassName() もしくは %ClassName(0) のいずれかを使用することができます。
OREFの詳細は、"OREF の基本" を参照してください。
例
以下の例は、クラスのインスタンスを作成します。$CLASSNAME は、OREF インスタンスを取り、対応するクラス名を返します。
SET dynoref = ##class(%SQL.Statement).%New()
WRITE "instance class name: ",$CLASSNAME(dynoref)
以下は、パラメータの指定なしの $CLASSNAME で現在のクラス・コンテキストのクラス名を返す例です。この例では、DocBook.Utils クラスです。これは、$THIS 特殊変数に含まれるクラス名と同じです。
WRITE "class context: ",$CLASSNAME(),!
WRITE "class context: ",$THIS
以下の例では、$CLASSNAME 関数および %ClassName(1) メソッドが同じ値を返すことを示しています。また、%ClassName() メソッドを (引数なし、もしくは引数 0 で) 使用して、短縮版のクラス名を返すことも示しています。
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()
関連項目
-
$CLASSMETHOD 関数
-
$METHOD 関数
-
$PARAMETER 関数
-
$PROPERTY 関数
-
$THIS 特殊変数