Indicates whether a program element is compliant with the Common Language Specification (CLS). This class cannot be inherited.
For a list of all members of this type, see CLSCompliantAttribute Members.
System.Object
System.Attribute
System.CLSCompliantAttribute
[Visual Basic] <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
Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Any instance members are not guaranteed to be thread safe.
If no CLSCompliantAttribute is applied to a program element, by default:
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. Similarly, if a class is marked as CLS-compliant, you must individually mark all members that are not CLS-compliant. All non-compliant members must provide corresponding CLS-compliant alternatives.
Attributes that are applied to assemblies or modules must occur after the using clauses and before the code.
For more information about using attributes, see
Note 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.
The following example applies a CLSCompliantAttribute to the entire assembly.
using System;
[assembly:CLSCompliant(true)]
The following declaration generates a CLS-compliance warning because the type UInt32 is not specified in the CLS.
public int SetValue(UInt32 value);
If the declaration is marked with a CLSCompliantAttribute, no compiler warning or error is generated.
[CLSCompliant(false)]
public int SetValue(UInt32 value);
Namespace: System
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework - Windows CE .NET
Assembly: Mscorlib (in Mscorlib.dll)
CLSCompliantAttribute Members | System Namespace | Attribute |