<proceduresignature1> 配列パラメータ型の配列または配列パラメータ型のランクのみが異なる<proceduresignature2> をオーバーロードするため、CLS に準拠していません。

更新 : 2007 年 11 月

別のプロシージャまたはプロパティをオーバーライドしているプロシージャまたはプロパティが <CLSCompliant(True)> でマーク付けされていますが、両者のパラメータ リストには、ジャグ配列の入れ子レベルまたは配列のランクの違いしかありません。

次の 3 つの宣言のうち、2 番目と 3 番目の宣言ではエラーが発生します。

Overloads Sub processArray(ByVal arrayParam() As Integer)

Overloads Sub processArray(ByVal arrayParam()() As Integer)

Overloads Sub processArray(ByVal arrayParam(,) As Integer)

2 番目の宣言では、最初の 1 次元のパラメータ arrayParam が配列の配列に変更されています。3 番目の宣言では、arrayParam が 2 次元配列 (ランク 2) に変更されています。Visual Basic ではこれらの変更のいずれか 1 つだけの違いでオーバーロードすることが可能ですが、このようなオーバーロードは 共通言語仕様 (CLS) に準拠しません。

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

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

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

Error ID: BC40035

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

  • CLS に準拠させる必要がある場合は、ここに示した変更点だけでなく、相互により多くの違いを持つようにオーバーロードを定義します。

  • ここで示した変更点だけでオーバーロードを定義する必要がある場合は、CLSCompliantAttribute を定義から削除するか、<CLSCompliant(False)> でマーク付けします。

参照

概念

CLS 準拠コードの記述

プロシージャのオーバーロード

参照

Overloads