CLSCompliantAttribute クラス

定義

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

public ref class CLSCompliantAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Serializable]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class CLSCompliantAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
type CLSCompliantAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
[<System.Serializable>]
type CLSCompliantAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CLSCompliantAttribute = class
    inherit Attribute
Public NotInheritable Class CLSCompliantAttribute
Inherits Attribute
継承
CLSCompliantAttribute
属性

次の例では、アセンブリ全体に a CLSCompliantAttribute を適用します。

using System;
    [assembly: CLSCompliant(true)]

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

public int SetValue(UInt32 value);

宣言がマークされている場合、 CLSCompliantAttributeコンパイラの警告またはエラーは生成されません。

[CLSCompliant(false)]
 public int SetValue(UInt32 value);

注釈

この CLSCompliantAttribute 属性は、特定のプログラム要素が共通言語仕様 (CLS) に準拠しているかどうかを示すために使用されます。これは、.NET を対象とする言語がサポートする必要がある機能を定義します。 CLS コンプライアンスは、主に、.NET を対象とする任意の言語でライブラリにアクセスできるようにする必要があるライブラリ開発者に関する懸念事項です。 詳細については、「 言語の独立性とLanguage-Independentコンポーネント」を参照してください。

この属性は、アセンブリ、モジュール、クラス、構造体、列挙型、コンストラクター、メソッド、プロパティ、フィールド、イベント、インターフェイス、デリゲート、パラメーター、戻り値の各プログラム要素に適用 CLSCompliantAttribute できます。 ただし、CLS コンプライアンスの概念は、メンバー署名の一部ではなく、アセンブリ、モジュール、型、および型のメンバーに対してのみ意味があります。 その結果、 CLSCompliantAttribute パラメーターまたは戻り値プログラム要素に適用されると無視されます。

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

  • アセンブリは CLS に準拠していません。

  • 型が CLS に準拠するのは、その外側の型またはアセンブリが CLS に準拠している場合のみです。

  • 型のメンバーは、型が CLS に準拠している場合にのみ CLS に準拠しています。

アセンブリが CLS 準拠としてマークされている場合、CLS に準拠していないアセンブリ内のパブリックに公開されている型は、引数を使用してfalseマークCLSCompliantAttributeする必要があります。 同様に、クラスが CLS 準拠としてマークされている場合は、CLS に準拠していないすべてのメンバーを個別にマークする必要があります。 非準拠メンバーはすべて、対応する CLS 準拠の代替手段を提供する必要があります。

アセンブリまたはモジュールに適用される属性は、C# using (ImportsVisual Basic) 句の後、およびコードの前に発生する必要があります。

属性の使用の詳細については、「 属性」を参照してください。

注意

現在の Microsoft Visual Basic コンパイラでは、意図的に CLS 準拠の警告は生成されませんが、コンパイラの将来のリリースでは警告が発行されます。

コンストラクター

CLSCompliantAttribute(Boolean)

指定したプログラム要素が CLS に準拠しているかどうかを示すブール値を使用して、CLSCompliantAttribute クラスのインスタンスを初期化します。

プロパティ

IsCompliant

指定したプログラム要素が CLS に準拠しているかどうかを示すブール値を取得します。

TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。

(継承元 Attribute)

メソッド

Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。

(継承元 Attribute)
GetHashCode()

このインスタンスのハッシュ コードを返します。

(継承元 Attribute)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。

(継承元 Attribute)
Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。

(継承元 Attribute)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

(継承元 Attribute)

適用対象

こちらもご覧ください