関数 '<procedurename>' の戻り値の型は CLS に準拠していません。

更新 : 2007 年 11 月

Function プロシージャが <CLSCompliant(True)> でマーク付けされていますが、戻り値の型が <CLSCompliant(False)> でマーク付けされているか、マークが付けられていないか、または非準拠の型であるため不適切です。

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

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

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

CLSCompliantAttribute を要素に設定しなかった場合は、非準拠であると見なされます。

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

Error ID: BC40027

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

  • Function プロシージャがこの特定の型を返す必要がある場合は、CLSCompliantAttribute を削除します。このプロシージャを CLS に準拠させることはできません。

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

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

参照

概念

CLS 準拠コードの記述