パラメータ '<parametername>' の型は CLS に準拠していません。

更新 : 2007 年 11 月

プロシージャが <CLSCompliant(True)> としてマークされていますが、宣言しているパラメータの型が <CLSCompliant(False)> としてマークされているか、マークされていないか、非準拠の型であるため不適切です。

プロシージャを共通言語仕様 (CLS) 準拠にするためには、CLS 準拠の型のみを使用する必要があります。このことは、パラメータの型、戻り値の型、およびすべてのローカル変数の型に当てはまります。

次の Visual Basic データ型は CLS に準拠していません。

CLSCompliantAttribute をプログラミング要素に適用するときは、属性の isCompliant パラメータを True または False に設定して準拠または非準拠を示します。このパラメータの既定値はありません。値を指定する必要があります。

CLSCompliantAttribute を要素に適用しなかった場合は、非準拠と見なされます。

既定では、このメッセージは警告です。警告を非表示にする方法や、警告をエラーとして扱う方法の詳細については、Visual Basic での警告の構成 を参照してください。

Error ID: BC40028

このエラーを解決するには

  • プロシージャがこの特定の型のパラメータを取る必要がある場合は、CLSCompliantAttribute を削除します。このプロシージャは CLS 準拠になりません。

  • プロシージャを CLS 準拠にする必要がある場合は、このパラメータの型を、最も近い CLS 準拠型に変更します。たとえば、2,147,483,647 を超える値の範囲が必要でない場合は、UInteger の代わりに Integer を使用できます。範囲を拡張する必要がある場合は、UInteger を Long で置き換えてください。

  • オートメーションまたは COM オブジェクトとやり取りする場合は、一部の型に .NET Framework とはデータ幅が異なるものがあることに注意してください。たとえば int は、他の環境では多くの場合 16 ビットです。そのようなコンポーネントから 16 ビットの整数を受け取る場合は、Visual Basic のマネージ コードで、Integer 型ではなく Short 型として宣言してください。

参照

概念

CLS 準拠コードの記述