UnscopedRefAttribute Třída

Definice

Používá se k označení řídicích znaků byref a není vymezen.

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
Dědičnost
UnscopedRefAttribute
Atributy

Poznámky

Existuje několik případů, kdy kompilátor jazyka C# považuje ref za implicitní scoped – kde kompilátor neumožňuje řídicí metodu ref .

Příklad:

  1. this struct například metody.
  2. ref parametry, které odkazují na ref struct typy.
  3. out parametry.

Tento atribut se používá v těchto instancích, kde ref by měl být povolený řídicí znak.

Použití tohoto atributu v libovolné podobě má vliv na uživatele příslušného rozhraní API. Autoři rozhraní API musí porozumět důsledkům použití tohoto atributu a tomu, jak to může ovlivnit jejich uživatele.

<format type="text/markdown">

Tento atribut je speciálně rozpoznán modulem runtime. ECMA-335 augment III.1.7.7 definuje omezení platné il, které odkazuje na tento atribut. Pokud je například tento atribut použit pro metodu instance typu hodnoty, this argument může utéct metodu. Pokud atribut chybí, může optimalizace kompilátoru spoléhat na this to, že se neuvolní při další optimalizaci určitých vzorů kódu, jako je například odstranění boxování. Další informace najdete v doplňku specifikace ROZHRANÍ příkazového řádku ECMA-335, s. III.1.7.7 ("Omezení výslovného souhlasu").

Vzhledem k tomu, že modul runtime spoléhá na tento atribut, nelze jej z sestavení odstranit. Omezení definovaná rozšířením III.1.7.7 platí pouze v případě <, že v modulu je k dispozici atribut xref:System.Runtime.CompilerServices.RefSafetyRulesAttribute> , takže tento atribut má dokumentovaný účinek pouze v modulu, který je také opatřen poznámkami refSafetyRulesAttribute.

</Formát>

Konstruktory

Name Description
UnscopedRefAttribute()

Inicializuje novou instanci UnscopedRefAttribute třídy.

Vlastnosti

Name Description
TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)

Metody

Name Description
Equals(Object)

Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí kód hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro