CLSCompliantAttribute クラス

プログラム要素が CLS (Common Language Specification) に準拠しているかどうかを示します。このクラスは継承できません。

この型のすべてのメンバの一覧については、CLSCompliantAttribute メンバ を参照してください。

System.Object
   System.Attribute
      System.CLSCompliantAttribute

<AttributeUsage(AttributeTargets.All)>
<Serializable>
NotInheritable Public Class CLSCompliantAttribute   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.All)]
[Serializable]
public sealed class CLSCompliantAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::All)]
[Serializable]
public __gc __sealed class CLSCompliantAttribute : public   Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.All)
 Serializable
class CLSCompliantAttribute extends Attribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

System.CSLCompliantAttribute 属性は、プログラム要素であるアセンブリ、モジュール、クラス、構造体、列挙体、コンストラクタ、メソッド、プロパティ、フィールド、イベント、インターフェイス、デリゲート、パラメータ、および戻り値に適用できます。ただし、CLS に準拠しているかどうかは、アセンブリ、モジュール、型、および型のメンバに対してだけ意味があり、メンバのシグネチャの各部に対しては意味がありません。したがって、 CLSCompliantAttribute がパラメータや戻り値のプログラム要素に適用されている場合は、無視されます。

CLSCompliantAttribute がプログラム要素に適用されていない場合は、既定では次のように判断されます。

  • アセンブリは CLS 非準拠。
  • 型は、その外側の型またはアセンブリが CLS に準拠している場合だけ CLS に準拠。
  • 型のメンバは、その型が CLS に準拠している場合にだけ CLS に準拠。

アセンブリに CLS 準拠のラベルが付けられている場合、 false 引数を指定した CLSCompliantAttribute で、そのアセンブリでパブリックに公開されている型のうち CLS に準拠していない型をマークする必要があります。同様に、クラスに CLS 準拠のラベルが付けられている場合は、CLS に準拠していない全メンバを個別にマークする必要があります。CLS に準拠していないすべてのメンバは、その代わりとなる CLS 準拠のメンバを提供する必要があります。

アセンブリまたはモジュールに適用する属性は、 using (Visual Basic では Imports) 句の後、コードの前に記述する必要があります。

属性の使用方法については、「 属性を使用したメタデータの拡張 」を参照してください。

メモ   現在の Microsoft Visual Basic コンパイラは CLS 準拠に関する警告が生成されないように設定されていますが、将来のリリースでは警告が生成されます。

使用例

CLSCompliantAttribute をアセンブリ全体に適用する例を次に示します。

using System;
   [assembly:CLSCompliant(true)]

次の宣言では、型 UInt32 が CLS では指定されていないため、CLS 準拠に関する警告が生成されます。

public int SetValue(UInt32 value);

宣言部を CLSCompliantAttribute でマークすると、コンパイラ警告やコンパイラ エラーは生成されません。

[CLSCompliant(false)]

public int SetValue(UInt32 value);

必要条件

名前空間: System

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

CLSCompliantAttribute メンバ | System 名前空間 | Attribute | 共通言語仕様の概要 | 属性を使用したメタデータの拡張