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
属性

次の例では、アセンブリ全体に 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 は無視されます。

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

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

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

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

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

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

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

Note

現在の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)

適用対象

こちらもご覧ください