英語で読む

次の方法で共有


コンパイラの警告 (レベル 1) CS3018

CLS に準拠していない型 'type' のメンバーであるため、'type' を CLS 準拠として設定できません

この警告は、CLSCompliant 属性が true に設定された入れ子のクラスが、CLSCompliant 属性が falseに設定されたクラスのメンバーとして宣言されている場合に発生します。 CLS 準拠ではない外部クラスのメンバーである場合、入れ子になったクラスを CLS 準拠にすることはできないため、このような記述は使用できません。 この警告を解決するには、入れ子になったクラスから CLSCompliant 属性を削除するか、属性の設定を true から falseに変更します。 CLS 準拠の詳細については、「言語への非依存性、および言語非依存コンポーネント」をご覧ください。

次の例では CS3018 が生成されます。

C#
// 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 {}  
}