Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lägg till dessa attribut i koden för kompilatorn för att generera en angiven IL-modifierare (Intermediate Language). Dessa attribut instruerar kompilatorn att inkludera motsvarande IL-modifierare i utdata.
C#-språkreferensen dokumenterar den senaste versionen av C#-språket. Den innehåller även inledande dokumentation för funktioner i offentliga förhandsversioner för den kommande språkversionen.
Dokumentationen identifierar alla funktioner som först introducerades i de tre senaste versionerna av språket eller i aktuella offentliga förhandsversioner.
Tips/Råd
Information om när en funktion först introducerades i C# finns i artikeln om språkversionshistoriken för C#.
| Attribut | Modifierare | Kommentarer |
|---|---|---|
| System.Runtime.InteropServices.ComImportAttribute | import |
|
| System.Runtime.InteropServices.DllImportAttribute | pinvokeimpl |
Du kan lägga till alternativ som anges i konstruktorn. |
| System.Runtime.InteropServices.FieldOffsetAttribute | .field |
Detta anger fältförskjutningen för minneslayouten. |
| MarshalAsAttribute | marshal |
Du kan ange alternativ som anges i konstruktorn. |
| System.Runtime.CompilerServices.MethodImplAttribute | flag |
Konstruktorargument anger specifika namngivna flaggor som aggressiveinlining eller forwardref. Dessa flaggor anger också native, managedeller optil modifierare för fältet 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, sequentialeller explicit |
Layoutalternativ kan anges med hjälp av parametrarna. |
| System.Runtime.CompilerServices.IndexerNameAttribute | Lägg till det här attributet i en indexerare för att ange ett annat metodnamn. Indexerare kompileras som standard till en egenskap med namnet Item. Du kan ange ett annat namn med det här attributet. |
Viktigt!
[StructLayoutAttribute] kan inte kombineras med attributet ExtendedLayout .
Vissa av dessa anpassade attribut används med hjälp av annan C#-syntax i stället för att lägga till attributet i källkoden.
| Attribut | Kommentarer |
|---|---|
| System.Runtime.InteropServices.DefaultParameterValueAttribute | Anger standardvärdet för parametern. Använd standardparametersyntax. |
| System.Runtime.InteropServices.InAttribute | Anger den IL[in]-modifierare. Använd in- eller ref readonly-modifierare. |
| System.Runtime.InteropServices.OutAttribute | Anger den IL[out]-modifierare. Använd out-modifieraren. |
| System.Runtime.CompilerServices.SpecialNameAttribute | Anger den ILspecialname-modifierare. Kompilatorn lägger automatiskt till den här modifieraren för metoder som kräver det. |
| System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute | Det här attributet krävs för funktionen delegate*. Kompilatorn lägger till den i alla delegate* som kräver dess användning. Du måste dock lägga till det här attributet i en metoddeklaration när metoden tilldelas till en funktionspekare. |
Följande attribut tillåts vanligtvis inte i C#-källan. De listas här för att hjälpa utvecklare av bibliotek som använder reflektionsteknik och för att säkerställa att du inte skapar anpassade attribut med samma fullständigt kvalificerade namn.
| Attribut | Kommentarer |
|---|---|
| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute | Förhindrar att kompilatorer på nednivå använder metadata som de inte kan förstå på ett säkert sätt. |
| System.Runtime.CompilerServices.DecimalConstantAttribute | Kodar const decimal fält. Körtiden stöder inte decimal-värden som konstanter. |
| System.Reflection.DefaultMemberAttribute | Kodar indexerare med System.Runtime.CompilerServices.IndexerNameAttribute. Det här attributet noterar standardindexeraren när dess namn skiljer sig från Item. Det här attributet tillåts i källan. |
| System.Runtime.CompilerServices.DynamicAttribute | Kodar om en typ i en signatur är dynamic (jämfört med object). |
| System.Runtime.CompilerServices.ExtensionAttribute | Det här attributet noterar tilläggsmetoder. Kompilatorn placerar även det här attributet på de innehållande klasserna. |
| System.Runtime.CompilerServices.FixedBufferAttribute | Detta attribut anger fält i fixed-strukturen. |
| System.Runtime.CompilerServices.IsByRefLikeAttribute | Det här attributet anger en ref struct. |
| System.Runtime.CompilerServices.IsReadOnlyAttribute | Det här attributet anger att en parameter har in-modifieraren. Den skiljer in parametrar från readonly ref eller [In] ref. |
| System.Runtime.CompilerServices.RequiresLocationAttribute | Det här attributet anger att en parameter har readonly ref-modifieraren. Den skiljer readonly ref från in eller [In] ref. |
| System.Runtime.CompilerServices.IsUnmanagedAttribute | Det här attributet anger unmanaged villkor för en typparameter. |
| System.Runtime.CompilerServices.NullableAttribute, , System.Runtime.CompilerServices.NullableContextAttributeSystem.Runtime.CompilerServices.NullablePublicOnlyAttribute | Dessa attribut kodar nullbara anteckningar i källkoden. |
| System.ParamArrayAttribute | Det här attributet kodar params modifierare för matrisparametrar. |
| System.Runtime.CompilerServices.ParamCollectionAttribute | Det här attributet kodar params modifieraren på parametrar som inte är matrisparametrar. |
| System.Runtime.CompilerServices.RefSafetyRulesAttribute | Det här attributet anger den C#-version som krävs för att förstå referenssäkerhetsanteckningar i sammansättningen. Referenssäkerhetsregler utvecklas när C# får nya funktioner. |
| System.Runtime.CompilerServices.RequiredMemberAttribute | Det här attributet anger att required-modifieraren har placerats i en medlemsdeklaration. Det är kodningen av nödvändiga medlemmar språkfunktion. |
| System.Runtime.CompilerServices.TupleElementNamesAttribute | Det här attributet kodar tupelelementens namn som används i signaturer. |
Kompilatorn kan dessutom generera en deklaration för andra attribut som används internt. Kompilatorn genererar dessa attribut i System.Runtime.CompilerServices namnrymd för eget bruk. Vissa finns inte i .NET Runtime-biblioteken. Kompilatorn syntetiserar i stället en definition för en internal typdeklaration i alla sammansättningar där attributet behövs.