コンパイラの警告 (レベル 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 {}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。