UnscopedRefAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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:
-
thisstructnapříklad metody. -
refparametry, které odkazují naref structtypy. -
outparametry.
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) |