CLSCompliantAttribute Klasa

Definicja

Wskazuje, czy element programu jest zgodny z Common Language Specification (CLS).Indicates whether a program element is compliant with the Common Language Specification (CLS). Klasa ta nie może być dziedziczona.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)]
[System.Serializable]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class CLSCompliantAttribute : Attribute
type CLSCompliantAttribute = class
    inherit Attribute
Public NotInheritable Class CLSCompliantAttribute
Inherits Attribute
Dziedziczenie
CLSCompliantAttribute
Atrybuty

Przykłady

W poniższym przykładzie zastosowano CLSCompliantAttribute do całego zestawu.The following example applies a CLSCompliantAttribute to the entire assembly.

using System;  
    [assembly: CLSCompliant(true)]  

Poniższa deklaracja generuje ostrzeżenie o zgodności ze specyfikacją CLS, ponieważ w specyfikacji CLS nie określono typu UInt32.The following declaration generates a CLS-compliance warning because the type UInt32 is not specified in the CLS.

public int SetValue(UInt32 value);  

Jeśli deklaracja jest oznaczona CLSCompliantAttribute, nie jest generowane ostrzeżenie lub błąd kompilatora.If the declaration is marked with a CLSCompliantAttribute, no compiler warning or error is generated.

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

Uwagi

Atrybut CLSCompliantAttribute służy do wskazywania, czy określony element programu jest zgodny z Common Language Specification (CLS), który definiuje funkcje, które mają być obsługiwane w dowolnym języku przeznaczonym dla .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. Zgodność ze specyfikacją CLS dotyczy głównie deweloperów biblioteki, którzy chcą mieć pewność, że ich biblioteki są dostępne w dowolnym języku, który jest przeznaczony dla .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. Aby uzyskać więcej informacji, zobacz niezależność od języka i składniki niezależne od języka.For more information, See Language Independence and Language-Independent Components.

Można zastosować atrybut CLSCompliantAttribute do następujących elementów programu: zestawu, modułu, klasy, struktury, wyliczenia, konstruktora, metody, właściwości, pola, zdarzenia, interfejsu, delegata, parametru i zwracanej wartości.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. Jednak pojęcie zgodności ze specyfikacją CLS jest zrozumiałe tylko dla zestawów, modułów, typów i składowych typów, a nie części podpisu elementu członkowskiego.However, the notion of CLS compliance is only meaningful for assemblies, modules, types, and members of types, not parts of a member signature. W związku z tym CLSCompliantAttribute jest ignorowany w przypadku zastosowania do elementów programu parametrów lub zwracanych wartości.Consequently, CLSCompliantAttribute is ignored when applied to parameter or return value program elements.

Jeśli żaden CLSCompliantAttribute nie zostanie zastosowany do elementu programu, domyślnie:If no CLSCompliantAttribute is applied to a program element, then by default:

  • Zestaw nie jest zgodny ze specyfikacją CLS.The assembly is not CLS-compliant.

  • Typ jest zgodny ze specyfikacją CLS tylko wtedy, gdy jego typ lub zestaw są zgodne ze specyfikacją CLS.The type is CLS-compliant only if its enclosing type or assembly is CLS-compliant.

  • Element członkowski typu jest zgodny ze specyfikacją CLS tylko wtedy, gdy typ jest zgodny ze specyfikacją CLS.The member of a type is CLS-compliant only if the type is CLS-compliant.

Jeśli zestaw jest oznaczony jako zgodny ze specyfikacją CLS, każdy publicznie uwidoczniony typ w zestawie, który jest niezgodny ze specyfikacją CLS, musi być oznaczony za pomocą CLSCompliantAttribute przy użyciu argumentu false.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. Podobnie, jeśli klasa jest oznaczona jako zgodna ze specyfikacją CLS, należy indywidualnie oznaczyć wszystkie składowe, które nie są zgodne ze specyfikacją CLS.Similarly, if a class is marked as CLS-compliant, you must individually mark all members that are not CLS-compliant. Wszystkie niezgodne elementy członkowskie muszą zapewnić odpowiednie alternatywy zgodne ze specyfikacją CLS.All non-compliant members must provide corresponding CLS-compliant alternatives.

Atrybuty, które są stosowane do zestawów lub modułów, muszą występować C# po klauzulach using (Imports w Visual Basic) i przed kodem.Attributes that are applied to assemblies or modules must occur after the C# using (Imports in Visual Basic) clauses and before the code.

Aby uzyskać więcej informacji o korzystaniu z atrybutów, zobacz atrybuty.For more information about using attributes, see Attributes.

Uwaga

Bieżący kompilator firmy Microsoft Visual Basic celowo nie generuje ostrzeżenia o zgodności ze specyfikacją CLS, jednak w przyszłej wersji kompilatora zostanie wyświetlone to ostrzeżenie.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.

Konstruktory

CLSCompliantAttribute(Boolean)

Inicjuje wystąpienie klasy CLSCompliantAttribute za pomocą wartości logicznej wskazującej, czy wskazany element programu jest zgodny ze specyfikacją CLS.Initializes an instance of the CLSCompliantAttribute class with a Boolean value indicating whether the indicated program element is CLS-compliant.

Właściwości

IsCompliant

Pobiera wartość logiczną wskazującą, czy wskazany element programu jest zgodny ze specyfikacją CLS.Gets the Boolean value indicating whether the indicated program element is CLS-compliant.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Odziedziczone po Attribute)

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.Returns a value that indicates whether this instance is equal to a specified object.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca kod skrótu dla tego wystąpienia.Returns the hash code for this instance.

(Odziedziczone po Attribute)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
IsDefaultAttribute()

Gdy jest zastępowany w klasie pochodnej, wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Odziedziczone po Attribute)
Match(Object)

Gdy jest zastępowany w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest zgodne z określonym obiektem.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.Maps a set of names to a corresponding set of dispatch identifiers.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.Provides access to properties and methods exposed by an object.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też