Nyelv

UnscopedRefAttribute Osztály

Definíció

Byref-feloldások jelzésére szolgál, és nincs hatóköre.

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
Öröklődés
UnscopedRefAttribute
Attribútumok

Megjegyzések

A C#-fordító több esetben implicit módon scopedkezeli az a-tref, ahol a fordító nem teszi lehetővé, ref hogy elkerülje a metódust. Például:

  • this például struct metódusokat.
  • ref típusokra hivatkozó ref struct paraméterek.
  • out Paraméterek.

Ezt az attribútumot azokban a példányokban használják, ahol a rendszernek engedélyeznie kell a ref menekülést.

Az attribútum bármilyen formában való alkalmazása hatással van a vonatkozó API felhasználóira. Az API-szerzőknek ismerniük kell az attribútum alkalmazásának élettartamra gyakorolt következményeit, és azt, hogy ez milyen hatással lehet a felhasználókra.

Ezt az attribútumot a futtatókörnyezet speciálisan felismeri. Az ECMA-335 augment III.1.7.7 olyan korlátozásokat határoz meg az érvényes IL-n, amelyek erre az attribútumra hivatkoznak. Ha például ezt az attribútumot egy értéktípusú példánymetódusra alkalmazza a rendszer, az this argumentum kikerülhet a metódusból. Ha az attribútum hiányzik, az optimalizáló fordító arra támaszkodhat this , hogy nem menekül bizonyos kódminták további optimalizálásához, például a boxolás megszüntetéséhez. További információ: ECMA-335 CLI Specification Addendum, Sec. III.1.7.7 ("Opt-in restrictions").

Mivel a futtatókörnyezet erre az attribútumra támaszkodik, nem távolítható el egy szerelvényből. A III.1.7.7. bővítménnyel definiált korlátozások csak akkor érvényesek, ha az RefSafetyRulesAttribute a modulon található, így ez az attribútum csak egy olyan modulban van dokumentálva, amely szintén megjegyzésekkel RefSafetyRulesAttributevan eljegyzve.

Konstruktorok

Név Description
UnscopedRefAttribute()

Inicializálja a UnscopedRefAttribute osztály új példányát.

Tulajdonságok

Név Description
TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)

Metódusok

Név Description
Equals(Object)

Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal.

(Öröklődés forrása Attribute)
GetHashCode()

A példány kivonatkódját adja vissza.

(Öröklődés forrása Attribute)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke.

(Öröklődés forrása Attribute)
Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes: