更新 : 2007 年 11 月
エラー メッセージ
CLS に準拠していない型 '型' のメンバであるため、'型' を CLS 準拠として設定できません
この警告は、CLSCompliant 属性の true に設定された入れ子のクラスが、CLSCompliant 属性の false に設定されたクラスのメンバとして宣言されている場合に発生します。CLS 準拠ではない外部クラスのメンバである場合、そこで入れ子にされているクラスが CLS 準拠になることはできないため、このような記述は認められません。この警告を解決するには、入れ子にされているクラスから CLSCompliant 属性を削除するか、この属性の設定を true から false に変更します。CLS 準拠の詳細については、「CLS 準拠コードの記述」および「共通言語仕様」を参照してください。
使用例
次の例では CS3018 エラーが生成されます。
// CS3018.cs
// compile with: /target:library
using System;
[assembly: CLSCompliant(true)]
[CLSCompliant(false)]
public class Outer
{
[CLSCompliant(true)] // CS3018
public class Nested {}
// OK
public class Nested2 {}
[CLSCompliant(false)]
public class Nested3 {}
}