順応性VIを使用すると、使用可能なすべてのデータタイプに対して同じ操作を実行するVIを作成できるため、データタイプごとに別々のVIを保存する必要はありません。順応性VIは、異なるデータタイプに対して類似した方法で操作を実装でき、大幅なカスタマイズが必要ない場合に便利です。データタイプごとに異なる方法で操作を実行する必要がある場合、または端子がデータタイプによって異なる場合は、代わりに多態性VIを作成します。

順応性VIは、以下の方法で作成できます。

  • 新規のブランク順応性VIを作成するには、ファイル»新規を選択し、新規ダイアログボックスから順応性VIを選択します。
  • 既存のVIを順応性VIに変換するには、ファイル拡張子を.vimに設定します。既存のVIが発呼者VIにインライン化されるように構成されていない場合、順応性VIは壊れた状態で表示されます。この場合、ファイル»VIプロパティ»実行を選択してサブVIを発呼者VIにインラインクローンの事前割り当てによる再入実行の各オプションを有効にし、デバッグを許可自動エラー処理を有効の各オプションを無効にして、順応性VIがインライン化されるように構成する必要があります。
    メモ 順応性VIに変換できるのは、標準のVIのみです。多態性VI、グローバルVI、またはXControl機能は順応性VIに変換できません。

順応性VIをブロックダイアグラムに配置すると、入力および出力はデフォルトデータタイプを表示します。入力また出力に制御器、表示器、または定数を配線すると、その入力または出力は配線されたデータタイプに適応します。

たとえば、「2D配列ソート」順応性VIの2D配列入力とソート後の2D配列出力は、refnum以外のすべてのデータタイプの2D配列を受け付け、デフォルトデータタイプはバリアントの2D配列です。2D配列に文字列の2D配列を配線した場合は、2D配列およびソート後の2D配列の両方が文字列の2D配列になります。しかし、この順応性VIは1D配列を受け付けるように構成されていないため、2D配列に1D配列を配線すると、VIは壊れます。

タイプ特化ストラクチャとタイプをアサートVIおよび関数を使用することにより、以下の目的に特化された順応性VIを作成できます。

  • 特定のデータタイプに対して順応性VIのコードの一部をカスタマイズする
  • 順応性VIに許容可能なデータタイプの一部のみを許容させる
  • 順応性VIに特定のデータタイプを拒否させる

たとえば、「2D配列ソート」順応性VIは、タイプ特化ストラクチャを使用して、指標が整数の場合と整数の配列の場合で異なる特定の動作を実行するように構成されています。指標入力は、符号付き32ビット整数以外の整数タイプを符号付き32ビット整数に強制変換します。指標が符号付き32ビット整数のみを受け入れるようにするには、「整数タイプをアサート」VIを使用します。

順応性VIは本質的に多態性であるため、構成エラーを起こさないすべてのデータタイプを受け入れます。NIでは、コードの再利用性を向上させるため、順応性VIで強制変換を行うことを推奨しています。アプリケーションが次の条件を満たす場合のみ、順応性VIの許容データタイプを制限します。

  • 強制によりパフォーマンスに大きな負担がかかる場合。
  • 特定のデータタイプがアプリケーション全体に無意味である場合。

関連情報

順応性VIをデバッグする

順応性VIと多態性VIから選択する