ランタイムクラスの保護関数
- 更新日2025-07-30
- 4分で読める
オブジェクト入力がターゲットオブジェクトと同じクラスまたは子クラスであるかをランタイム時に確認します。 サブVIが予想された入力タイプの子クラスを受け取った時に、サブVIノードのLabVIEWクラス出力がLabVIEWクラス入力と同じクラスタイプに確実にダウンキャストされるようにするためには、この関数をサブVIのブロックダイアグラムで使用します。

入力/出力
ターゲットオブジェクト
—
ターゲットオブジェクト―オブジェクト入力のクラスと比較するクラスのオブジェクトです。
オブジェクト入力
—
オブジェクト入力―LabVIEWに自動的にダウンキャストさせるオブジェクトです。
エラー入力
—
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。以下の例外を除き、この入力は標準エラー入力として機能します。 このノードは実行前にエラーが発生していても通常どおり実行されます。
オブジェクト出力
—
オブジェクト・アウトは オブジェクト・インと同じである。 ターゲット・オブジェクトが オブジェクトinと互換性がない場合、関数はエラーを返し、 オブジェクトoutの データ値は ターゲット・オブジェクトと同じワイヤ・タイプになります。
エラー出力
—
エラー出力には、エラー情報が含まれます。この出力は、標準エラー出力として機能します。 |
この関数は、以下の条件を満たすVIで使用できます。
- VIが1つのLabVIEWクラスを入力として受け取り、出力として同じLabVIEWクラスを返す。
- VIをサブVIとして呼び出す必要がある。
- 子クラスが入力に配線された場合に、サブVIノードの出力クラスタイプを入力クラスタイプに合うよう変更する必要がある。
同一のLabVIEWクラスを入力および出力するサブVIの多くでは、子クラスをクラス入力に配線すると出力クラスが自動的にダウンキャストされます。このようなサブVIでは、この関数をブロックダイアグラムに配置する必要がありません。
ただし、LabVIEWはクラスタイプがサブVIのブロックダイアグラムで変更されないことが確証できない場合は、サブVIノードの出力クラスを自動的にダウンキャストしません。このような場合、クラスタイプが確実にサブVIのブロックダイアグラムのプロセスによって変更されないことをユーザが把握していれば、この関数を使用してクラスをサブVIから返す直前にダウンキャストできます。この関数はターゲットオブジェクトと同じタイプのオブジェクトを返すため、LabVIEWは返されたクラスをそのタイプにダウンキャスト可能であることを認識します。つまり、LabVIEWはこの関数によってサブVIのクラス出力を入力クラスタイプに一致するようダウンキャストできることを認識します。
関連情報
サンプルプログラム
LabVIEWに含まれている以下のサンプルファイルを参照してください。
- labview\examples\Object-Oriented Programming\Preserve Run-Time Class\Preserve Run-Time Class.lvproj
ターゲットオブジェクト
—
エラー入力
—
オブジェクト出力
—
エラー出力
—