UnscopedRefAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- 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:
-
thisbijvoorbeeldstructmethoden. -
refparameters die verwijzen naarref structtypen. -
outParameters.
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) |