UnscopedRefAttribute Klas

Definitie

Wordt gebruikt om een byref-escapes aan te geven en is niet binnen het bereik.

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
Overname
UnscopedRefAttribute
Kenmerken

Opmerkingen

Er zijn verschillende gevallen waarin de C#-compiler een ref impliciete scoped behandeling krijgt, waarbij de compiler de ref methode niet toestaat om te ontsnappen.

Voorbeeld:

  1. this bijvoorbeeld struct methoden.
  2. ref parameters die verwijzen naar ref struct typen.
  3. out Parameters.

Dit kenmerk wordt gebruikt in die gevallen waarin het ref moet worden toegestaan om te ontsnappen.

Het toepassen van dit kenmerk is in elke vorm van invloed op gebruikers van de toepasselijke API. Api-auteurs moeten inzicht krijgen in de gevolgen van de levensduur van het toepassen van dit kenmerk en hoe dit van invloed kan zijn op hun gebruikers.

<format type="text/markdown">

Dit kenmerk wordt speciaal herkend door de runtime. ECMA-335 augment III.1.7.7 definieert beperkingen voor geldige IL die naar dit kenmerk verwijst. Wanneer dit kenmerk bijvoorbeeld wordt toegepast op een exemplaarmethode van een waardetype, mag het this argument ontsnappen aan de methode. Wanneer het kenmerk afwezig is, kan een optimalisatiecompilator vertrouwen op this het niet ontsnappen om bepaalde codepatronen verder te optimaliseren, zoals het boksen elimineren. Zie de ECMA-335 CLI Specification Addendum, Sec. III.1.7.7 ("Opt-in restrictions").

Omdat de runtime afhankelijk is van dit kenmerk, kan deze niet worden verwijderd uit een assembly. De beperkingen die zijn gedefinieerd door augment III.1.7.7 zijn alleen van toepassing wanneer de <xref:System.Runtime.CompilerServices.RefSafetyRulesAttribute> aanwezig is op de module, dus dit kenmerk heeft het gedocumenteerde effect alleen in een module die ook is geannoteerd met RefSafetyRulesAttribute.

</Formaat>

Constructors

Name Description
UnscopedRefAttribute()

Initialiseert een nieuw exemplaar van de UnscopedRefAttribute klasse.

Eigenschappen

Name Description
TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Attribute)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op