Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Fügen Sie dem Code diese Attribute hinzu, damit der Compiler einen angegebenen Modifizierer für Zwischensprache (IL) ausgibt. Diese Attribute weisen den Compiler an, den entsprechenden AWL-Modifikator in die Ausgabe aufzunehmen.
Die C#-Sprachreferenz dokumentiert die zuletzt veröffentlichte Version der C#-Sprache. Außerdem enthält sie erste Dokumentation für Features in der öffentlichen Vorschau für die kommende Sprachversion.
In der Dokumentation werden alle Features identifiziert, die in den letzten drei Versionen der Sprache oder in der aktuellen öffentlichen Vorschau eingeführt wurden.
Tipp
Informationen dazu, wann ein Feature erstmals in C# eingeführt wurde, finden Sie im Artikel zum Versionsverlauf der C#-Sprache.
| attribute | Modifizierer | Kommentare |
|---|---|---|
| System.Runtime.InteropServices.ComImportAttribute | import |
|
| System.Runtime.InteropServices.DllImportAttribute | pinvokeimpl |
Sie können die im Konstruktor aufgeführten Optionen hinzufügen. |
| System.Runtime.InteropServices.FieldOffsetAttribute | .field |
Damit legen Sie den Feld-Offset für das Speicherlayout fest. |
| MarshalAsAttribute | marshal |
Sie können die im Konstruktor aufgeführten Optionen festlegen. |
| System.Runtime.CompilerServices.MethodImplAttribute | flag |
Konstruktorargumente geben bestimmte benannte Flags wie aggressiveinlining oder forwardref an. Diese Flags geben die Modifizierer native, managedoder optil auch für das Feld System.Runtime.CompilerServices.MethodCodeType an. |
| System.NonSerializedAttribute | notserialized |
|
| System.Runtime.InteropServices.OptionalAttribute | [opt] |
|
| System.Runtime.InteropServices.PreserveSigAttribute | preservesig |
|
| System.SerializableAttribute | serializable |
|
| System.Runtime.InteropServices.StructLayoutAttribute |
auto, sequential oder explicit |
Layout-Optionen können über die Parameter festgelegt werden. |
| System.Runtime.CompilerServices.IndexerNameAttribute | Fügen Sie dieses Attribut einem Indexer hinzu, um einen anderen Methodennamen festzulegen. Standardmäßig werden Indexer mit einer Eigenschaft namens Item kompiliert. Sie können mit diesem Attribut einen anderen Namen festlegen. |
Von Bedeutung
StructLayoutAttribute[] kann nicht mit dem ExtendedLayout Attribut kombiniert werden.
Einige dieser benutzerdefinierten Attribute werden mithilfe einer anderen C#-Syntax angewendet, anstatt das Attribut dem Quellcode hinzuzufügen.
| attribute | Kommentare |
|---|---|
| System.Runtime.InteropServices.DefaultParameterValueAttribute | Gibt den Standardwert für den Parameter an. Verwenden Sie die Standardparametersyntax. |
| System.Runtime.InteropServices.InAttribute | Legt den IL [in] Modifikator fest. Verwenden Sie die modifizierer in oder ref readonly. |
| System.Runtime.InteropServices.OutAttribute | Legt den IL [out] Modifikator fest. Verwenden Sie den Modifikator out. |
| System.Runtime.CompilerServices.SpecialNameAttribute | Legt den IL specialname Modifikator fest. Der Compiler fügt diesen Modifikator automatisch für Methoden hinzu, die ihn benötigen. |
| System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute | Dieses Attribut ist für die Funktion delegate* erforderlich. Der Compiler fügt es jedem delegate* hinzu, der seine Verwendung erfordert. Sie müssen dieses Attribut jedoch jeder Methodendeklaration hinzufügen, wenn diese Methode einem Funktionszeiger zugewiesen ist. |
Die folgenden Attribute sind in der Regel in der C#-Quelle unzulässig. Sie sind hier aufgeführt, um Bibliotheksautoren zu helfen, die Reflection verwenden, und um sicherzustellen, dass Sie keine angepassten Attribute mit demselben vollqualifizierten Namen erstellen.
| attribute | Kommentare |
|---|---|
| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute | Verhindert, dass Compiler mit Downlevel Metadaten verwenden, die sie nicht sicher verstehen können. |
| System.Runtime.CompilerServices.DecimalConstantAttribute | Codiert const decimal-Felder. Die Laufzeitumgebung unterstützt decimal-Werte nicht als konstante Werte. |
| System.Reflection.DefaultMemberAttribute | Kodiert Indexer mit System.Runtime.CompilerServices.IndexerNameAttribute. Dieses Attribut verweist auf den Standard-Indexer, wenn sein Name anders als Item ist. Dieses Attribut ist im Quelltext zugelassen. |
| System.Runtime.CompilerServices.DynamicAttribute | Verschlüsselt, ob ein Typ in einer Signatur dynamic ist (im Gegensatz zu object). |
| System.Runtime.CompilerServices.ExtensionAttribute | Dieses Attribut vermerkt Erweiterungsmethoden. Der Compiler setzt dieses Attribut auch auf die enthaltenden Klassen. |
| System.Runtime.CompilerServices.FixedBufferAttribute | Dieses Attribut spezifiziert fixed-Struct-Felder. |
| System.Runtime.CompilerServices.IsByRefLikeAttribute | Dieses Attribut spezifiziert eine ref-Struct. |
| System.Runtime.CompilerServices.IsReadOnlyAttribute | Dieses Attribut zeigt an, dass ein Parameter den Modifikator in hat. Es unterscheidet in-Parameter von readonly ref oder [In] ref. |
| System.Runtime.CompilerServices.RequiresLocationAttribute | Dieses Attribut zeigt an, dass ein Parameter den Modifikator readonly ref hat. Es unterscheidet readonly ref von in oder [In] ref. |
| System.Runtime.CompilerServices.IsUnmanagedAttribute | Dieses Attribut spezifiziert die unmanaged-Beschränkung für einen Typ-Parameter. |
| System.Runtime.CompilerServices.NullableAttribute, System.Runtime.CompilerServices.NullableContextAttributeSystem.Runtime.CompilerServices.NullablePublicOnlyAttribute | Diese Attribute codieren Nullwerte zulassende Anmerkungen im Quellcode. |
| System.ParamArrayAttribute | Dieses Attribut kodiert den params-Modifikator für Array-Parameter. |
| System.Runtime.CompilerServices.ParamCollectionAttribute | Dieses Attribut kodiert den params-Modifikator für Nicht-Array-Parameter. |
| System.Runtime.CompilerServices.RefSafetyRulesAttribute | Dieses Attribut spezifiziert die C# Version, die erforderlich ist, um ref safety Anmerkungen in der Assembly zu verstehen. Die Regeln zur Sicherheit von Referenzen entwickeln sich weiter, während C# neue Funktionen erhält. |
| System.Runtime.CompilerServices.RequiredMemberAttribute | Dieses Attribut gibt an, dass der required-Modifizierer in einer Memberdeklaration platziert wurde. Dies ist die Codierung der Sprachfunktion der erforderlichen Member. |
| System.Runtime.CompilerServices.TupleElementNamesAttribute | Dieses Attribut kodiert die in Signaturen verwendeten Tupel-Elementnamen. |
Darüber hinaus kann der Compiler eine Deklaration für andere intern verwendete Attribute generieren. Der Compiler generiert diese Attribute im System.Runtime.CompilerServices Namespace für die eigene Verwendung. Einige sind nicht in den .NET Runtime-Bibliotheken enthalten. Stattdessen synthetisiert der Compiler eine Definition für eine internal-Typdeklaration in jeder Assembly, in der das Attribut benötigt wird.