UnscopedRefAttribute Classe

Définition

Utilisé pour indiquer des échappements byref et n’est pas délimité.

public ref class UnscopedRefAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)]
public sealed class UnscopedRefAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)>]
type UnscopedRefAttribute = class
    inherit Attribute
Public NotInheritable Class UnscopedRefAttribute
Inherits Attribute
Héritage
UnscopedRefAttribute
Attributs

Remarques

Il existe plusieurs cas où le compilateur C# traite implicitement ref un scoped compilateur, où le compilateur n’autorise pas l’échappement ref de la méthode.

Par exemple:

  1. this par struct exemple, méthodes.
  2. Paramètres ref qui font référence aux types ref struct.
  3. Paramètres out.

Cet attribut est utilisé dans les instances où l’élément ref doit être autorisé à s’échapper.

L’application de cet attribut, sous n’importe quel formulaire, affecte les consommateurs de l’API applicable. Il est nécessaire pour les auteurs d’API de comprendre les implications de la durée de vie de l’application de cet attribut et de la façon dont il peut avoir un impact sur leurs utilisateurs.

<format type="text/markdown »>

Cet attribut est spécialement reconnu par le runtime. ECMA-335 augmente III.1.7.7 définit des restrictions sur l’il valide qui fait référence à cet attribut. Par exemple, lorsque cet attribut est appliqué à une méthode d’instance d’un type valeur, l’argument this est autorisé à échapper à la méthode. Lorsque l’attribut est absent, un compilateur d’optimisation peut s’appuyer sur this ne pas s’échapper pour optimiser davantage certains modèles de code, tels que l’élimination de la boxe. Pour plus d’informations, consultez l’addenda de spécification ECMA-335 CLI, Sec.1.1.7.7 (« Restrictions d’adhésion »).

Étant donné que le runtime s’appuie sur cet attribut, il ne peut pas être supprimé d’un assembly. Les restrictions définies par l’extension III.1.7.7 s’appliquent uniquement lorsque le <xref :System.Runtime.CompilerServices.RefSafetyRulesAttribute> est présent sur le module. Cet attribut a donc son effet documenté uniquement dans un module qui est également annoté avec « RefSafetyRulesAttribute ».

</Format>

Constructeurs

Nom Description
UnscopedRefAttribute()

Initialise une nouvelle instance de la classe UnscopedRefAttribute.

Propriétés

Nom Description
TypeId

En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute.

(Hérité de Attribute)

Méthodes

Nom Description
Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage pour cette instance.

(Hérité de Attribute)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut de la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à