web-dev-qa-db-ja.com

基本タイプがCLSに準拠していません。この警告の理由は何ですか?

私のクラスの1つで件名から警告を受けました。実際、クラスは非常にシンプルで、私のジェネリックベースタイプを継承しただけです。また、ソリューション全体でそのジェネリッククラスから他の継承者がいますが、そのような警告はありません。

これの理由は何でしょうか?コンパイラは、ベースタイプがCLSに準拠していない理由の手がかりを与えません

34
DarkDeny

おそらく、その特定のプロジェクトのどこかに[Assembly:CLSCompliant(true)]があります。これにより、コンパイラーがトリガーされ、すべてのタイプがCLS準拠であるかどうかがチェックされます。 [CLSCompliant(false)]を使用して、タイプまたはメソッドなどのこれをオーバーライドできます。

55

CLSCompliantとしてマークされている派生型があると思いますが、ベースはそうではありません。

CLS準拠コードの記述 正規の例は、共通言語仕様(CLS)の一部ではないUInt32を使用しているため、Int64を使用してCLSに準拠するか、属性を削除します(clsに準拠していないことを宣言します)。

問題のあるコード行を特定するには、さらにコードが必要です。 エラーの詳細情報 が表示されます。

4
Gishu