Sdílet prostřednictvím


Vlastní atributy, které generují příznaky nebo možnosti ve výstupu zprostředkujícího jazyka (IL)

Přidejte tyto atributy do kódu kompilátoru pro generování zadaného modifikátoru jazyka IL (Intermediate Language). Tyto atributy dávají kompilátoru pokyn, aby do výstupu zahrnul odpovídající modifikátor IL.

Referenční dokumentace jazyka C# dokumentuje naposledy vydané verze jazyka C#. Obsahuje také počáteční dokumentaci k funkcím ve verzi Public Preview pro nadcházející jazykovou verzi.

Dokumentace identifikuje všechny funkce, které byly poprvé představeny v posledních třech verzích jazyka nebo v aktuálních verzích Public Preview.

Návod

Informace o tom, kdy byla funkce poprvé představena v jazyce C#, najdete v článku o historii verzí jazyka C#.

Atribut Modifikátor Komentáře
System.Runtime.InteropServices.ComImportAttribute import
System.Runtime.InteropServices.DllImportAttribute pinvokeimpl Můžete přidat možnosti uvedené v konstruktoru.
System.Runtime.InteropServices.FieldOffsetAttribute .field Tím se nastaví offset pole pro rozložení paměti.
MarshalAsAttribute marshal Můžete nastavit možnosti uvedené v konstruktoru.
System.Runtime.CompilerServices.MethodImplAttribute flag Argumenty konstruktoru určují konkrétní pojmenované značky, jako jsou aggressiveinlining nebo forwardref. Tyto příznaky také určují modifikátory native, managednebo optil pro pole System.Runtime.CompilerServices.MethodCodeType.
System.NonSerializedAttribute notserialized
System.Runtime.InteropServices.OptionalAttribute [opt]
System.Runtime.InteropServices.PreserveSigAttribute preservesig
System.SerializableAttribute serializable
System.Runtime.InteropServices.StructLayoutAttribute auto, sequentialnebo explicit Možnosti rozložení lze nastavit pomocí parametrů.
System.Runtime.CompilerServices.IndexerNameAttribute Přidáním tohoto atributu do indexeru nastavte jiný název metody. Ve výchozím nastavení jsou indexery kompilovány do vlastnosti s názvem Item. Pomocí tohoto atributu můžete zadat jiný název.

Důležité

[StructLayoutAttribute] nelze kombinovat s atributem ExtendedLayout .

Některé z těchto vlastních atributů se použijí pomocí jiné syntaxe jazyka C#, nikoli přidáním atributu do zdrojového kódu.

Atribut Komentáře
System.Runtime.InteropServices.DefaultParameterValueAttribute Určuje výchozí hodnotu parametru. Použijte výchozí syntaxi parametru .
System.Runtime.InteropServices.InAttribute Specifikuje modifikátor IL [in]. Použijte modifikátory in nebo ref readonly.
System.Runtime.InteropServices.OutAttribute Specifikuje modifikátor IL [out]. Použijte modifikátor out.
System.Runtime.CompilerServices.SpecialNameAttribute Specifikuje modifikátor IL specialname. Kompilátor tento modifikátor automaticky přidá pro metody, které ho vyžadují.
System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute Tento atribut je vyžadován pro funkci delegate*. Kompilátor ho přidá do kteréhokoli delegate*, který vyžaduje jeho použití. Tento atribut však musíte přidat k jakékoli deklaraci metody, pokud je tato metoda přiřazena funkčnímu ukazateli.

Následující atributy jsou obecně zakázány ve zdroji jazyka C#. Jsou tu uvedené, aby pomohly autorům knihoven, kteří používají reflexi, a zajistily, že nevytváříte vlastní atributy se stejným plně kvalifikovaným názvem.

Atribut Komentáře
System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute Zabraňuje kompilátorům nižší úrovně používat metadata, která nemohou bezpečně pochopit.
System.Runtime.CompilerServices.DecimalConstantAttribute Kóduje pole const decimal. Modul runtime nepodporuje decimal hodnoty jako konstantní hodnoty.
System.Reflection.DefaultMemberAttribute Kóduje indexery pomocí System.Runtime.CompilerServices.IndexerNameAttribute. Tento atribut označuje výchozí indexer, pokud se jeho název liší od Item. Tento atribut je ve zdroji povolený.
System.Runtime.CompilerServices.DynamicAttribute Kóduje, zda je typ v podpisu dynamic (versus object).
System.Runtime.CompilerServices.ExtensionAttribute Tento atribut označuje rozšiřující metody. Kompilátor také umístí tento atribut na obsahující třídy.
System.Runtime.CompilerServices.FixedBufferAttribute Tento atribut určuje pole struktury fixed.
System.Runtime.CompilerServices.IsByRefLikeAttribute Tento atribut určuje ref strukturu.
System.Runtime.CompilerServices.IsReadOnlyAttribute Tento atribut označuje, že parametr má modifikátor in. Rozlišuje parametry in od readonly ref nebo [In] ref.
System.Runtime.CompilerServices.RequiresLocationAttribute Tento atribut označuje, že parametr má modifikátor readonly ref. Rozlišuje readonly ref od in nebo [In] ref.
System.Runtime.CompilerServices.IsUnmanagedAttribute Tento atribut určuje omezení unmanaged parametru typu.
System.Runtime.CompilerServices.NullableAttribute, , System.Runtime.CompilerServices.NullableContextAttributeSystem.Runtime.CompilerServices.NullablePublicOnlyAttribute Tyto atributy kódují poznámky s možnou hodnotou null ve zdrojovém kódu.
System.ParamArrayAttribute Tento atribut kóduje modifikátor params u parametrů pole.
System.Runtime.CompilerServices.ParamCollectionAttribute Tento atribut kóduje modifikátor params pro parametry, které nejsou polem.
System.Runtime.CompilerServices.RefSafetyRulesAttribute Tento atribut určuje verzi jazyka C#, která je nutná k pochopení bezpečnostních poznámek ref v sestavení. Pravidla bezpečnosti ref se vyvíjejí, protože jazyk C# získává nové funkce.
System.Runtime.CompilerServices.RequiredMemberAttribute Tento atribut označuje, že modifikátor required byl umístěn na deklaraci členu. Je to kódování požadovaných členů jazykového prvku.
System.Runtime.CompilerServices.TupleElementNamesAttribute Tento atribut kóduje názvy prvků n-tice používané v podpisech.

Kromě toho může kompilátor vygenerovat deklaraci pro jiné atributy používané interně. Kompilátor vygeneruje tyto atributy v oboru názvů System.Runtime.CompilerServices pro vlastní použití. Některé nejsou v knihovnách .NET Runtime. Místo toho kompilátor syntetizuje definici pro deklaraci typu internal v libovolném sestavení, kde je atribut potřebný.