CLSCompliantAttribute クラス


プログラム要素が共通言語仕様 (CLS) に準拠しているかどうかを示します。Indicates whether a program element is compliant with the Common Language Specification (CLS). このクラスは継承できません。This class cannot be inherited.

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)]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
public sealed class CLSCompliantAttribute : Attribute
type CLSCompliantAttribute = class
    inherit Attribute
Public NotInheritable Class CLSCompliantAttribute
Inherits Attribute

次の例では、アセンブリ全体に CLSCompliantAttribute を適用します。The following example applies a CLSCompliantAttribute to the entire assembly.

using System;  
    [assembly: CLSCompliant(true)]  

UInt32 型が CLS では指定されていないため、次の宣言は CLS 準拠の警告を生成します。The following declaration generates a CLS-compliance warning because the type UInt32 is not specified in the CLS.

public int SetValue(UInt32 value);  

宣言が CLSCompliantAttributeでマークされている場合、コンパイラの警告またはエラーは生成されません。If the declaration is marked with a CLSCompliantAttribute, no compiler warning or error is generated.

 public int SetValue(UInt32 value);  


CLSCompliantAttribute 属性は、特定のプログラム要素が共通言語仕様 (CLS) に準拠しているかどうかを示すために使用されます。 CLS は、.NET Framework を対象とするすべての言語がサポートする必要がある機能を定義します。The CLSCompliantAttribute attribute is used to indicate whether a particular program element complies with the Common Language Specification (CLS), which defines the features that any language that targets the .NET Framework must support. CLS 準拠は、主にライブラリ開発者にとって、.NET Framework を対象とする任意の言語でライブラリにアクセスできるようにすることが重要です。CLS compliance is primarily of concern to library developers who want to ensure that their libraries are accessible in any language that targets the .NET Framework. 詳細については、「言語への非依存性」と「言語に依存しないコンポーネント」を参照してください。For more information, See Language Independence and Language-Independent Components.

CLSCompliantAttribute 属性は、assembly、module、class、struct、enum、constructor、method、property、field、event、interface、delegate、parameter、および戻り値の各 program 要素に適用できます。You can apply the CLSCompliantAttribute attribute to the following program elements: assembly, module, class, struct, enum, constructor, method, property, field, event, interface, delegate, parameter, and return value. ただし、CLS 準拠の概念は、メンバーシグネチャの一部ではなく、アセンブリ、モジュール、型、および型のメンバーに対してのみ意味があります。However, the notion of CLS compliance is only meaningful for assemblies, modules, types, and members of types, not parts of a member signature. その結果、パラメーターまたは戻り値のプログラム要素に適用した場合、CLSCompliantAttribute は無視されます。Consequently, CLSCompliantAttribute is ignored when applied to parameter or return value program elements.

プログラム要素に CLSCompliantAttribute が適用されていない場合、既定では次のようになります。If no CLSCompliantAttribute is applied to a program element, then by default:

  • アセンブリが CLS に準拠していません。The assembly is not CLS-compliant.

  • 型は、それを囲む型またはアセンブリが CLS に準拠している場合にのみ、CLS に準拠します。The type is CLS-compliant only if its enclosing type or assembly is CLS-compliant.

  • 型が CLS に準拠している場合にのみ、型のメンバーは CLS に準拠しています。The member of a type is CLS-compliant only if the type is CLS-compliant.

アセンブリが CLS 準拠としてマークされている場合、CLS に準拠していないアセンブリ内の公開されている型は、false 引数を使用して CLSCompliantAttribute でマークする必要があります。If an assembly is marked as CLS-compliant, any publicly exposed type in the assembly that is not CLS-compliant must be marked with CLSCompliantAttribute using a false argument. 同様に、クラスが CLS 準拠としてマークされている場合は、CLS に準拠していないすべてのメンバーを個別にマークする必要があります。Similarly, if a class is marked as CLS-compliant, you must individually mark all members that are not CLS-compliant. 準拠していないすべてのメンバーは、対応する CLS 準拠の代替手段を提供する必要があります。All non-compliant members must provide corresponding CLS-compliant alternatives.

アセンブリまたはモジュールに適用される属性は、 C# using``Imports (Visual Basic) 句では、コードの前に記述する必要があります。Attributes that are applied to assemblies or modules must occur after the C# using (Imports in Visual Basic) clauses and before the code.

属性の使用方法の詳細については、「属性」を参照してください。For more information about using attributes, see Attributes.


現在の Microsoft Visual Basic コンパイラは、意図的に CLS 準拠の警告を生成しません。ただし、コンパイラの将来のリリースでは、その警告が発行されます。The current Microsoft Visual Basic compiler intentionally does not generate a CLS-compliance warning, however, a future release of the compiler will issue that warning.



指定したプログラム要素が CLS に準拠しているかどうかを示すブール値を使用して、CLSCompliantAttribute クラスのインスタンスを初期化します。Initializes an instance of the CLSCompliantAttribute class with a Boolean value indicating whether the indicated program element is CLS-compliant.



指定したプログラム要素が CLS に準拠しているかどうかを示すブール値を取得します。Gets the Boolean value indicating whether the indicated program element is CLS-compliant.


派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(継承元 Attribute)



このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(継承元 Attribute)

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(継承元 Attribute)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(継承元 Attribute)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(継承元 Attribute)

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)


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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

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

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(継承元 Attribute)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

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

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 Attribute)