CLSCompliantAttribute Klasa

Definicja

Wskazuje, czy element programu jest zgodny ze specyfikacją języka wspólnego (CLS). Klasa ta nie może być dziedziczona.

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
Dziedziczenie
CLSCompliantAttribute
Atrybuty

Przykłady

Poniższy przykład dotyczy CLSCompliantAttribute całego zestawu.

using System;
    [assembly: CLSCompliant(true)]

Poniższa deklaracja generuje ostrzeżenie cls-compliance, ponieważ typ UInt32 nie jest określony w CLS.

public int SetValue(UInt32 value);

Jeśli deklaracja jest oznaczona znakiem CLSCompliantAttribute, nie jest generowane ostrzeżenie kompilatora ani błąd.

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

Uwagi

Atrybut CLSCompliantAttribute służy do wskazywania, czy określony element programu jest zgodny ze specyfikacją języka wspólnego (CLS), która definiuje funkcje obsługiwane przez dowolny język przeznaczony dla platformy .NET. Zgodność clS jest przede wszystkim problemem dla deweloperów bibliotek, którzy chcą mieć pewność, że ich biblioteki są dostępne w dowolnym języku przeznaczonym dla platformy .NET. Aby uzyskać więcej informacji, zobacz Niezależność języka i składniki Language-Independent.

Atrybut można zastosować CLSCompliantAttribute do następujących elementów programu: assembly, module, class, struct, enum, constructor, method, property, field, event, interface, delegate, parameter i return value. Jednak pojęcie zgodności CLS ma znaczenie tylko dla zestawów, modułów, typów i elementów członkowskich typów, a nie części podpisu elementu członkowskiego. W związku z tym CLSCompliantAttribute jest ignorowany po zastosowaniu do parametru lub zwracanych elementów programu wartości.

Jeśli nie CLSCompliantAttribute jest stosowany do elementu programu, domyślnie:

  • Zestaw nie jest zgodny ze specyfikacją CLS.

  • Typ jest zgodny ze specyfikacją CLS tylko wtedy, gdy jego typ lub zestaw jest zgodny ze specyfikacją CLS.

  • Element członkowski typu jest zgodny ze specyfikacją CLS tylko wtedy, gdy typ jest zgodny ze specyfikacją CLS.

Jeśli zestaw jest oznaczony jako zgodny ze specyfikacją CLS, każdy publicznie uwidoczniony typ w zestawie, który nie jest zgodny ze specyfikacją CLSCompliantAttribute CLS, musi być oznaczony za pomocą argumentu false . Podobnie, jeśli klasa jest oznaczona jako zgodna ze specyfikacją CLS, należy indywidualnie oznaczyć wszystkie elementy członkowskie, które nie są zgodne ze specyfikacją CLS. Wszystkie niezgodne elementy członkowskie muszą zapewnić odpowiednie alternatywy zgodne ze specyfikacją CLS.

Atrybuty stosowane do zestawów lub modułów muszą występować po klauzulach języka C# using (Importsw Visual Basic) i przed kodem.

Aby uzyskać więcej informacji na temat używania atrybutów, zobacz Atrybuty.

Uwaga

Bieżący kompilator microsoft Visual Basic celowo nie generuje ostrzeżenia dotyczącego zgodności CLS, jednak w przyszłej wersji kompilatora zostanie wyświetlone to ostrzeżenie.

Konstruktory

CLSCompliantAttribute(Boolean)

Inicjuje CLSCompliantAttribute wystąpienie klasy z wartością logiczną wskazującą, czy wskazany element programu jest zgodny ze specyfikacją CLS.

Właściwości

IsCompliant

Pobiera wartość logiczną wskazującą, czy wskazany element programu jest zgodny ze specyfikacją CLS.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

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

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 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.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też