ジェネリック パラメータの制約型 <typename> は CLS に準拠していません。
更新 : 2007 年 11 月
ジェネリック型が <CLSCompliant(True)> としてマークされていますが、1 つの型パラメータに対する制約で指定している型が、<CLSCompliant(False)> としてマークされているか、マークされていないか、非準拠の型であるため修飾されていません。
型を 共通言語仕様 (CLS) 準拠にするためには、CLS 準拠の型のみを使用する必要があります。このことは、ジェネリック型の型パラメータに対する制約についても当てはまります。
次の Visual Basic データ型は CLS に準拠していません。
CLSCompliantAttribute 属性をプログラミング要素に適用するときは、その属性の isCompliant パラメータを True または False に設定することで準拠または非準拠を示します。このパラメータの既定値はありません。値を指定する必要があります。
CLSCompliantAttribute を要素に適用しなかった場合は、非準拠と見なされます。
既定では、このメッセージは警告です。警告を非表示にする方法や、警告をエラーとして扱う方法の詳細については、Visual Basic での警告の構成 を参照してください。
Error ID: BC40040
このエラーを解決するには
ジェネリック型が、この特定の型で制限された型パラメータを使用する必要がある場合は、CLSCompliantAttribute を削除します。この型は CLS 準拠になりません。
ジェネリック型を CLS 準拠にする必要がある場合は、この制約の型を、最も近い CLS 準拠型に変更します。たとえば、2,147,483,647 を超える値の範囲が必要でない場合は、UInteger の代わりに Integer を使用できます。拡張範囲が必要な場合は、UInteger の代わりに Long を使用できます。